Flash IDEでリンケージ設定済みの選択したビットマップシンボルを、スプライトとして登録するasコードを吐くjsflスクリプト

ASで面倒な、埋め込みビットマップのスプライト化を自動化するjsfl

ライブラリに登録したビットマップにリンケージ設定したら、選択して(複数可)下記jsflスクリプトを(メニュー「コマンド」>「コマンドの実行」から)発動。


var library = fl.getDocumentDOM().library;
var items = library.getSelectedItems();
var textOut="";
for (var i = 0; i < items.length; i++) {
  var new_name = items[i].linkageClassName.replace(/_(.)/, function($){return $.toUpperCase();});
  fl.trace("var "+new_name+":Sprite;");
  textOut+=new_name+" = new Sprite();\r"
  textOut+=new_name+".addChild(new Bitmap(new "+items[i].linkageClassName+"(0,0),\"auto\",true));\r\r";
}
fl.trace("\r"+textOut);

下記のようなコードが出力パネルに吐き出されるので、asの適当な場所にコピペして使う。
出力例(リンケージ名「main_image_01」・・・の場合)


var main_Image_01:Sprite;
var main_Image_02:Sprite;
var main_Image_03:Sprite;

main_Image_01 = new Sprite();
main_Image_01.addChild(new Bitmap(new main_image_01(0,0),"auto",true));

main_Image_02 = new Sprite();
main_Image_02.addChild(new Bitmap(new main_image_02(0,0),"auto",true));

main_Image_03 = new Sprite();
main_Image_03.addChild(new Bitmap(new main_image_03(0,0),"auto",true));

リンケージ名を_(アンダーバー)で区切った2節目の頭文字を大文字にしてスプライトのインスタンス名にする仕様。「image_01」のような2節目頭が英小文字じゃないリンケージ名だとasがエラーになるので注意。


もっと楽な方法あるかも知んないけど、これで非常にコーディングが楽になった。ある程度変数の命名ルールを固定できるのも利点。