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

投稿:  著者:


Adobe Bridgeのウィンドウで選択した画像ファイルを、自動的にFireworksに配置するスクリプトです。Fireworksの場合、そのままドラッグドロップした方が早いのですがネタがないので(汗)。おまけにサイズ指定しても無視されるというナイスな仕様......。

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

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



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 = fw.getDocumentDOM();';
scriptcode += 'dom.importFile("'+filename+'", {left:0, top:0, right:320, bottom:240}, true);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "fireworks-9";
btObj.send();
}


特定の拡張子を持つファイルだけを貼り付けたい場合には、以下のようにします。上から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 = fw.getDocumentDOM();';
scriptcode += 'dom.importFile("'+filename+'", {left:0, top:0, right:320, bottom:240}, true);';
//$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "fireworks-9";
btObj.send();
}


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

btObj.target = "fireworks-10";

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

btObj.target = "fireworks-11";

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

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

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

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

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


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

来月には新総理誕生。日本の9月は総理誕生祭。来年から祝日にでもしたらどうでしょうか。ひとつのソースでiOSとAndroidのプログラムを作れるPhoneGapの連載をASCII.jpで開始しました。あと、以前コミPo!で作った漫画のキャラを流用して新たな漫画作りました。ヒマな人だけどうぞ。

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

・毎度おなじみASCII.jpの連載
「第1回 HTML5でiPhoneアプリ開発!PhoneGap入門」
< http://ascii.jp/elem/000/000/621/621416/
>
「第2回 PhoneGapでiPhoneのカメラアプリを作ろう」
< http://ascii.jp/elem/000/000/624/624794/
>
「第3回 フォトアルバムアプリで学ぶPhoneGapの使い方」
< http://ascii.jp/elem/000/000/626/626126/
>

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

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

・Mac OS X Lion使い方辞典
< http://www.openspc2.org/reibun/MacOSX/Lion/
>

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

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