- 2008年12月10日 15:14
- ActionScript 2.0 | ActionScript 3.0 | JSFL
Flash周りのスクリプト言語で型を特定したい場合、 as2,as3,jsflではそれぞれ実装がことなってきます。
例えばas2の場合、
//as2 typeof(test_mc)//movieclip
typeof()を用いて特定ができます。
as3の場合では、typeofを実行しても objectが返ってくるため、
同じようにはいきません。
私の場合はよくisステートメントを利用します。
//as3 (test_mc is MovieClip)//true
ところで、jsflではどうでしょう?
実際のところ、as2のようにtypeofしてもobjectが返ってきますし、as3のようにisステートメントは実装されていません。
jsflでは、itemTypeプロパティを用います。このプロパティは、対象の型に応じて"undefined"、"component"、"movie clip"、"graphic"、"button"、"folder"、"font"、"sound"、"bitmap"、 "compiled clip"、"screen"をそれぞれ返します。
以下はサンプルです。
jsflのlibrary.itemsでは、ライブラリ内のものはフォルダだろうがアイテムだろうが関係なく配列に格納されています。つまり、ごちゃまぜになっているため、使い物にならないわけです。
var libraryItemArr = fl.getDocumentDOM().library.items;
for(var i=0;i<libraryItemArr.length;i++){
var targetLibraryItem = libraryItemArr[i];
fl.trace(targetLibraryItem.itemType);
}
itemTypeを使えば、ライブラリ内のアイテムがmovieclipなのか、ビットマップなのか、はたまたフォルダーなのかすら知ることができます。
- Newer: JSFLでステージサイズを変更するとクラッシュする[Flash]
- Older: 12月16日!SparkProjectイベント!



