10/06/04追記 昨日投稿したスクリプトだと、単純に空のMCを追加するだけだったので、
まちがってました。なので、ちゃんと選択したやつを複製するようにしました。
—————————————–
こんにちは。きんくまです。
タイトルが長いんですけど、今回はjsflです。
今回作ったやつ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | var reg = new RegExp( "[0-9]" ); //検索条件 var newStr = "2" ; //置換後の名前 var props = []; getSelectedItemInfo(); duplicateItems(); function getSelectedItemInfo(){ var items = fl.getDocumentDOM().library.getSelectedItems(); var i; var item; var prop; for (i = 0; i < items.length; i++){ item = items[i]; prop = { name:item.name, linkageExportForAS:item.linkageExportForAS, linkageExportInFirstFrame:item.linkageExportInFirstFrame, linkageClassName:item.linkageClassName, linkageBaseClass:item.linkageBaseClass } props.push(prop); } } function duplicateItems(){ var prop; var i; for (i = 0; i < props.length; i++){ prop = props[i]; var originalPath = prop.name; var idx = originalPath.lastIndexOf( "/" ) + 1; var path = originalPath.substr(0,idx); var baseName = originalPath.substr(idx); var newName = baseName.replace(reg, newStr); var newPath = path + newName; fl.getDocumentDOM().library.duplicateItem(originalPath); fl.getDocumentDOM().library.selectItem(originalPath + " のコピー" ); var items = fl.getDocumentDOM().library.getSelectedItems(); var item = items[0]; item.name = newName; if (prop.linkageExportForAS){ item.linkageExportForAS = true ; item.linkageExportInFirstFrame = prop.linkageExportInFirstFrame; item.linkageClassName = prop.linkageClassName.replace(reg, newStr); if (prop.linkageBaseClass != "" ){ item.linkageBaseClass = prop.linkageBaseClass; } } } } |
どんなもの
1.ライブラリで複製したいものを複数選択
2.上のjsflを実行
3.一番上の検索・置換条件に応じて、アイテムが複製される
やつです。
実際に見てみましょう。
もともとの状態です。2つのMCがあって、それぞれに書き出し設定がされています。
ちなみに、書き出し設定してないやつがまじっていても複製はうまくいきます。
MyMC1
MyMC1Main
基本クラスがちがったり、1フレーム目に書き出しの設定をわざと変えてあります。
そんで、この2つのアイテムをライブラリ上で選択したあと、上のjsflを実行すると
(拙作jsflEdit使うと便利です)
なんか増えてる!
増えたやつの名前の条件は、今回は正規表現で、「数字を見つけたら2に変更する」ってやったので、MyMC2とかってなってます。
もしMyMC1,MyMC1MainをYourMC1,YourMC1Mainと変換したい場合は
検索条件を以下のようにやると動作します。
1 2 | var reg = new RegExp( "My" ); //検索条件 var newStr = "Your" ; //置換後の名前 |
MyMC2
MyMC2Main
1フレーム目に書き出しとか、基本クラスはそのまま継承している点に注目です。
あとは、検索・置換条件を変えてスイスイと複製しまくれそうです。
仕様
・もともとの名前に応じて検索・置換。
・基本クラスはそのままコピー
・クラスは名前で置換
・1フレーム目に書き出し、ActionScript用に書き出し設定はコピー
制作中のもので大量のMCを複製しなきゃいけないので作ってみました。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ