手軽なスクリプトのお供にどうですか?スクリプトシェル

Script UIを調べるで紹介したスクリプトですが入力したスクリプトを実行するところでハマってました、
ただ単に"alert('hogehoge')"とかならいいんだけど。
eval(SCRIPT_STRING);とかillustrator13.executeScript(SCRIPT_STRING);
が"activeDocument"を取って来てくれない。
パレットが前面に出ててアクティブではないからかしら?と思い、"app.documents[0]"としても駄目。
BridgeTalkを使えってことかしら?そうかしら?


やっぱりそうでした!
で、よくやく出来ました。

只、Macだと改行できない。Windowsだとalt+リターンで改行できる。

//include files
/*
#includepath 'Path/to/LIB'
#include 'c.js';
#include 'hvg.js';
#include 'file.js';
*/
//
var CR = String.fromCharCode(13);
//var doc = app.activeDocument;
TW = new Window('palette','ScriptShell',[200,100,550,280]);
TW.BTN= TW.add("button",[100,150,250,160], "execute", { name:"ok"});
TW.TBOX = TW.add(
"edittext",
[5,5,350,140],
"alert(activeDocument);",
{
	multiline:true, 
	enterKeySignalsOnChange:true
	}
);

//
//
if(File.fs == "Macintosh"){
TW.TBOX.onChange = function(){
	TW.TBOX.text = TW.TBOX.text +CR;
}
}

TW.BTN.onClick = function(){
	try{
		//
		//illustrator13.executeScript(TW.TBOX.text);
		//eval(TW.TBOX.text);
		var bt = new BridgeTalk();
		bt.target = "illustrator";
		bt.body = TW.TBOX.text;
		bt.onError = function(btObj){
				alert( btObj.body + " (" + btObj.headers ["Error-Code"] + ")" ); 
			};
		bt.send();

	}catch(e){
		alert(e);
		throw(e);
	}
};

TW.show();

書き捨てのスクリプトなんかに使うといいかも。