Moderator: PS-Moderators
var bt = new BridgeTalk;
bt.target = "bridge";
//the script passed to the target application returns the object using "toSource"
bt.body = "var tn = new Thumbnail(File('C:\\Myphotos\\photo1.jpg'));\r" +
"var md = {fname:tn.metadata.FileName, fsize:tn.metadata.FileSize};\r" +
"md.toSource();"
//For the result, use eval to reconstruct the object
bt.onResult = function(resObj) {
md = bt.result = eval(resObj.body);
// Now you can access fname and fsize properties
doSomething (md.fname, md.fsize);
};
//launch the Bridge if it's not already running
if (!BridgeTalk.isRunning("bridge")) {
BridgeTalk.launch("bridge");
}
// send the message
bt.send();var bt = new BridgeTalk;
bt.target = "bridge";
bt.body = "var tn = new Thumbnail(File('~/Desktop/angie2.tif'));\r" +
"var md = {fname:tn.metadata.FileName, fsize:tn.metadata.FileSize};\r" +
"md.toSource();"
bt.onResult = function(resObj) {
md = bt.result = eval(resObj.body);
alert(md)
};
if (!BridgeTalk.isRunning("bridge")) {
BridgeTalk.launch("bridge");
}
bt.send();// Send a synchronous message. The result is returned.
// If a result doesn't come back in 'timeout' seconds, undefined is returned.
BridgeTalk.prototype.sendSynch = function(timeout) {
var self = this;
self.onResult = function(res) {
this.result = res.body;
this.complete = true;
}
self.complete = false;
self.send();
if (timeout) {
for (var i = 0; i < timeout; i++) {
BridgeTalk.pump(); // process any outstanding messages
if (!self.complete) {
$.sleep(1000);
} else {
break;
}
}
}
var res = self.result;
self.result = self.complete = self.onResult = undefined;
return res;
};
// for typos, provide an alias
BridgeTalk.prototype.sendSync = BridgeTalk.prototype.sendSynch;
function test() {
var bridgeApp = "bridge-1.0";
if (!BridgeTalk.isRunning(bridgeApp)) {
BridgeTalk.launch(bridgeApp);
}
var bt = new BridgeTalk();
bt.target = bridgeApp;
bt.body = "new Date().toString()";
var res = bt.sendSynch(10);
alert(res);
};
test();
Just to make sure I understand this, if I wanted to pass an object and had 'obj.toSource' in the bt.body I would need to eval(res) right?
Return to Adobe Bridge Scripting: General Discussion
Users browsing this forum: No registered users and 1 guest