クリエイター手抜きプロジェクト[286]Adobe Flash CS3/CS4/CS5編 Bridgeで選択したファイルをFlashに配置する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,800文字)


Adobe Bridgeのウィンドウで選択した画像ファイルを、自動的にFlashに配置するスクリプトです。Flashでは画像ファイルをBridgeから直接ドラッグドロップできません。このスクリプトを使えば、複数の画像をファイルをまとめてステージに配置することができるので少しは役立つかもしれません。

なお、スクリプトはBridgeやFlashからではなく、ESTK上から実行してください。実行する際のターゲットアプリケーション名はBridgeになります。

以下のスクリプトは、Bridgeのウィンドウで選択された画像をファイルをFlash CS3のライブラリに読み込ませるものです。実行する前にあらかじめドキュメントを用意しておく必要があります。




var diskName = "SnowLeopard"; // ルートドライブ名
var fileList = app.document.selections;
for(var i=0; i<fileList.length; i++){
myBTalk("file:///"+diskName+fileList[i].path);
}

function myBTalk(filename){
var scriptcode = 'dom = fl.getDocumentDOM();';
scriptcode += 'dom.importFile("'+filename+'", true);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "flash-9";
btObj.send();
}


ステージにも同時に配置したい場合は、以下の行の最後にあるtrueをfalseにしてください。

scriptcode += 'dom.importFile("'+filename+'", true);';


特定の拡張子を持つファイルだけを貼り付けたい場合には、以下のようにします。上から2行目の拡張子リストを変更、追加することで任意の拡張子を持つ画像ファイルを配置することができます。


var diskName = "SnowLeopard"; // ルートドライブ名
var ext = [".jpg", ".png", ".gif"]; // 拡張子
var fileList = app.document.selections;
for(var i=0; i<fileList.length; i++){
for(var j=0; j<ext.length; j++){
if (fileList[i].path.indexOf(ext[j]) > -1){
myBTalk("file:///"+diskName+fileList[i].path);
}
}
}

function myBTalk(filename){
var scriptcode = 'dom = fl.getDocumentDOM();';
scriptcode += 'dom.importFile("'+filename+'", true);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "flash-9";
btObj.send();
}


Flash CS3でなくCS4で実行する場合は以下のようにしてください。

btObj.target = "flash-10";

Flash CS5の場合は以下のように変更してください。

btObj.target = "flash-11";

FlashもFireworks同様、マクロメディア社で開発されていたため、同じJavaScriptでも他のAdobe製品などとはかなり異なります。Fireworks同様に、ユーザーの環境に依存する場合があります。

前回同様、上記のスクリプトは、そのままでは動作しません。Windowsの場合はCドライブから起動するというのがベースにあるのでいいのですが、MacOS Xの場合は起動ディスクの名称は適当に変更することができます。一般的には、MacOS Xはディスク名を必要としないのですが、FlashもFireworksと同じように、起動ディスク名を指定しないと動作しません。つまり

var diskName = "SnowLeopard"; // ルートドライブ名

のSnowLeopardの部分は、各自自分が起動しているハードディスクの名前に置き換えてもらわなければいけません。実際にファイルを選択した時にどのようなパス指定になるかは、以下のスクリプトを使って確認できます。なお、ファイルの拡張子は.jsや.jsxではなく.jsflにしてください(Fireworksは.jsfでFlashは.jsflと拡張子が違うので注意)。

var URI = fl.browseForFileURL("select", "Import File");
alert(URI);


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/ >

9月7日に、改訂5版JavaScriptポケットリファレンスが発売されます。HTML5/CSS3に対応しています。
ブラウザはIE10pp2, Android 2.3, iOS4.3.3までは対応しています。
5版では4版にあったIE独自のフィルタ機能は全部削除しました。
また、ActiveX/LiveConnectの部分も削除しました。
もし、それらの部分が必要な方は4版を購入しておいてください。

・Retro Programmer【漫画】
< http://www.openspc2.org/reibun/comipo/RetroProgrammer/story01/0001/ >

・毎度おなじみASCII.jpの連載
「第4回 iPhone/iPad両対応!PhoneGapで作るアルバムアプリ」
< http://ascii.jp/elem/000/000/628/628147/ >

・Google API Expertが解説する HTML5逆引きリファレンス【発売中!!】
< http://www.amazon.co.jp/dp/4844330349 >

・iPhone/iPad × HTML5アプリ制作
< http://www.amazon.co.jp/dp/4797362618 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >