FlashのライブラリになんかするJSFL[アルトベンリ]
寒くなってきましたがいかがお過ごしでしょうか。冬はごはんがおいしくていいですね。
突然ですが、ギターの弦を張るときにペグをサクサクまくためのドライバー的な道具の名前が「アルトベンリ」っていう冗談みたいなものなんですが、なくてもできるけどアルトベンリという名前自体がものすごい発明だと勝手に思っております。
Flashにおけるアルトベンリを発掘していきたいなーと思う今日この頃です。
とりあえずJSFLなんかはそういった側面のプチ便利ツールだと思うので今日もJSFLネタで行こうと思います。(Twitterでハッシュタグ#flash_arutobenriもつけてあるのでなんかあればシェアしていくといいかも)
Flashのライブラリに一括で何かしたいときに手軽にためせるのがこれです。
var lib = fl.getDocumentDOM().library; var list = lib.items; //var list = lib.getSelectedItems(); var code = prompt('input some JSFL code.','fl.trace(item.name)'); var l = list.length; for ( var i = 0; i < l; i++ ) { var item = list[i]; eval(code); }
これを.jsflで保存して、Flaファイルを開いた状態で実行するとダイアログが出ます。
ダイアログに各アイテム対して行いたい処理(JSFLのコード)を入力してOKを押します。
前提として、libにライブラリの参照、listにライブラリのアイテム、itemにループ内のアイテムが格納されてるとします。通常のJSFLと同様に、セミコロンで区切れば複数行文のコードも書けます。
もし全部じゃなくて選択したアイテムにのみ適応したい場合は2行目をコメントアウトして3行目を復活させてください。
例)リンケージしているクラス名を全部取得する
var className = item.linkageBaseClass||item.linkageClassName if(className) fl.trace(className);