Photoshopから送られたデータをBridgeで受け取る
PhotoshopのスクリプトからBridgeにデータを渡すには、どのようにしたらよいのでしょうか。PhotoshopにはBridge Talkのためのオブジェクトやメソッドがありませんので、appオブジェクトのbodyプロパティにBridgeへ渡したい文字列を入れます。
ただし、app.bodyに入れただけではBridge側で受け取れませんので、データをBridgeで受け取るためのイベントハンドラを設定しておきます。Bridge Talkから呼び出されたスクリプトが終了するとResultイベントが発生しますので、Bridge TalkオブジェクトのonResultプロパティにイベント発生時に実行する関数(イベントハンドラ)を指定してResultイベントを捕捉します。
関数にはオブジェクトが引数として渡されます。オブジェクトのbodyプロパティにPhotoshopから渡された文字列が入っていますので、あとは渡された文字列を解析すればいいのです。
サンプル04は、BridgeからPhotoshopのスクリプトを呼び出し、入力された名前をBridge側で受け取ってアラートダイアログに表示します。
●サンプル04
#target "Bridge"
var bt = new BridgeTalk();
bt.target = "Photoshop";
var fileObj = new File("~/ps_prompt.jsx");
var flag = fileObj.open("r");
if (flag){
bt.body = fileObj.read();
}
bt.onResult = function(returnBtObj){
alert("PSで入力された名前:"+returnBtObj.body);
}
bt.send();
●サンプル05
app.body=prompt("名前をいれてください", "小橋川");