真的那么难吗?我的google-fu是钝的吗?我怎么做一个取消按钮来取消脚本其余部分的执行?
我的剧本很笨。我不是一个好的编码员,我知道,但这就是我所拥有的:
我正在自动化 INDD CScloud。脚本首先打开一个窗口,操作员有选项作为单选按钮。底部是标准的“确定”和“取消”按钮,然后脚本具有一些根据窗口中显示的选项执行操作的功能。我想要发生的是当我点击“Canel”按钮时所有代码执行都停止。而已!没有什么花哨!但它似乎所做的只是关闭对话框窗口并继续而不注册更改。GRRR。
这是我蹩脚的代码:
var asker = new Window ("dialog","Answer Some Stuff!");
var firstselector = asker.add ("panel", undefined, "Which Thing First?")
firstselector.alignChildren = "left"
firstselector.preferredSize = [250,100]
thing1a = typeselector.add ("radiobutton", undefined, "Thing 1a")
thing2a = typeselector.add ("radiobutton", undefined, "Thing 2a")
thing3a = typeselector.add ("radiobutton", undefined, "Thing 3a")
thing1a.value = true;
var secondselector = asker.add ("panel", undefined, "Which Thing Second?")
secondselector.alignChildren = "left"
secondselector.preferredSize = [250,100]
thing1b = secondselector.add ("radiobutton", undefined, "Thing 1b")
thing2b = secondselector.add ("radiobutton", undefined, "Thing 2b")
thing3b = secondselector.add ("radiobutton", undefined, "Thing 3b")
thing1b.value = true;
var thirdselector = asker.add ("panel", undefined, "Do Thing Three?")
thirdselector.alignChildren = "left"
thirdelector.preferredSize = [250,75]
certyes = thirdselector.add ("radiobutton", undefined, "Yes")
thidno = thirdselector.add ("radiobutton", undefined, "No")
thirdyes.value = true;
asker.add ("button", undefined, "Do It!", {name: "ok"});
asker.add ("button", undefined, "Cancel", {name: "cancel"});
asker.show();
var mainPart = function(){
if (thing1a.value == true && thing1b.value == true)
{
do some stuff
}
if (thing2a.value == true && thing1b.value == true)
{
do some different stuff
}
})();
var secondPart = function(){
if (thing3.value == true && thing1b.value == true)
{
do this other stuff
}
if (thing3.value == true && thing2b.value == true)
{
do some other stuff entirely
}
alert("All The Stuff Is Done!");
}
)();
我想要发生的是,当操作员单击“取消”按钮时,脚本退出并且mainPart
不secondPart
执行。
我尝试使用 a .onClick
,如下所示:
var cancelBtn = asker.add('button',undefined,'Cancel');
cancelBtn.preferredSize.width = 175;
cancelBtn.onClick=function(){
exit();
}
但显然exit()
是无效的,代码只是继续运行......所以我尝试break
了,它关于“在循环外非法使用中断”的错误但随后继续执行其余代码......
请帮我不要那么笨。