<目的>
Adobe AnimateCC というオーサリング環境で動作するActionScriptを作成しています。
Flash Professional
時代のFLASHファイルをHTML5 CANVAS形式
のFLASHファイルに変換する処理を行うスクリプトです。
スクリプト内で 「コンポーネントをシンボルに変換する処理」 があるのですが、これに先立って
「ステージ上のグループ化されたオブジェクトをグループ化解除する処理」 が必要になりました。
<Flash JavaScript リファレンス>
ADOBE® FLASH® PROFESSIONAL CS5 およびCS5.5 の拡張機能
<実装中の処理>
FlashJavaScript
1var group_flag = true; 2 3while(1){ 4 group_flag = false; 5 fl.getDocumentDOM().selectAll(); 6 if(fl.getDocumentDOM().selection.isGroup()){ 7 fl.getDocumentDOM().selection.unGroup(); 8 group_flag = true; 9 } 10 if(!group_flag){ 11 break; 12 } 13}
- group_flagをfalseで初期化
- グループ化されたオブジェクトの有無を**isGroup()**メソッドで判定し
- グループであった場合はunGroup()メソッドで分解、group_flagをtrueに
- group_flagがfalseのままであればbreak
という処理の流れです。グループ化されているオブジェクトがなくなるまで分解しつづけます。
本当はグループ化されているオブジェクトのみを選択して分解したい所ですが・・・
Adobe「そんなものうちにはないよ(無慈悲)」
<発生した問題>
上記のリファレンスマニュアルによれば、**isGroup()**メソッドはshape型のElementオブジェクトにしか対応していない様です。
結局ステージ上のアイテムがグループ化されているかどうかはどのように判定すればいいというのでしょうか....
AnimateCC上でオブジェクトを操作するスクリプトであることから、データ構造も複雑怪奇であり、
どのように修正すれば動作するのか皆目見当がつきません。皆様のお力をお貸しください。。。(´;ω;`)ブワッ
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。