BridgeTalkではほかのアプリケーションにスクリプトを送信し、その送信先アプリケーションからメッセージを受け取ることも可能です。

//送信先からメッセージを受け取る
#target 'indesign'
#targetengine "nakatojiTest"
//Photoshopで実行する関数
function openPsd() {
    var msg= app.version;
    return uneval (msg);
}
//--------------------------------------
//  InDesignで実行される部分
//--------------------------------------
//BrideTalk
var btObj= new BridgeTalk();
btObj.target= 'photoshop'; //送信先
//btObj.body= uneval ( openPsd() ); //この書き方ではうまくいかない
btObj.body= uneval ( openPsd )+'()';
btObj.onResult= function(resObj){
    alert ( eval(resObj.body) );
    }
btObj.send();

 

送信先で実行する関数の返り値は、onResultに設定された関数の引数として受け取ることができます。このメッセージはBridgeTalkオブジェクトになっており、メッセージはbodyプロパティに収納されています。

上の例では送信先(Photoshop)から返信したいメッセージを、送信元と同様に実行命令をuneval文字列化し、送信元に返信されたメッセージはunevalと真逆の命令であるevalで実行命令に戻しています。

 

 

Joomla templates by a4joomla