FlashやFireworksにはJSFLというJSでアプリケーションを操作できるインターフェイスがあります。

ヒストリー、バッチ、コマンドの中身が実はこれなんですが、自作したりカスタマイズしたりすることができます。

もちろん保存してコマンドとして登録したり、パネル化したりもできるみたいです。

先日、ライブラリのビットマップの画質をすべて最高(ロスレス)する必要があったのですが、数的にどう考えても非効率なのでバッチ化できないかと考え、JSFLのコマンド作りに挑戦してみました。

最終的にはこんな感じになりました。

// all_lossless.jsfl var list = fl.getDocumentDOM().library.items for ( var i in list ) { var item = list[i]; if( item.itemType == "bitmap" ) { item.allowSmoothing = true; item.compressionType = "lossless"; } }

これを*.jsflで保存してメニュー>コマンド>コマンドの実行でファイルを選択すると実行できます

実際は一個手動でやってみて、そのヒストリをコピーして、新規JSFLファイルにペースト、一括処理するようにリライト、という感じです。

慣れてきたらヒストリからじゃなくて、イチからかくのもいいと思います。 ヘルプの[Flashの拡張機能]という項目にAPIについて詳細なリファレンスがあります。

flというオブジェクトがFlash本体に相当し、ライブラリやステージにアクセスすることができます。 fl.trace()関数で出力パネルにトレースすることもできるので変更処理しないでいろいろ試しながらできます。

これにパネルつけたら結構便利というか、すでにそういうのはありそうですね。

HTML5飯