Действительно ли это так сложно? Неужели мой google-fu тупой? Как я могу сделать кнопку отмены, которая отменяет выполнение остальной части скрипта?Adobe ESTK Отмена кнопки, которая действительно отменяет
Мой сценарий немой. Я не очень хороший кодер, я знаю это, но вот что у меня есть:
Я автоматизирую INDD CScloud. Сценарий сначала открывает окно, оператор имеет опции в качестве переключателей. внизу есть стандартные кнопки «ОК» и «Отмена», тогда сценарий имеет некоторые функции, которые делают вещи на основе параметров, отображаемых в окне. То, что я хочу сделать, это ALL CODE EXECUTION to STOP, когда я нажимаю кнопку «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
не выполняются.
Я попытался с помощью .onClick
, как это:
var cancelBtn = asker.add('button',undefined,'Cancel');
cancelBtn.preferredSize.width = 175;
cancelBtn.onClick=function(){
exit();
}
, но, по-видимому exit()
не является действительным, и код просто продолжает идти ... так что я пытался break
, то его ошибки о «незаконном использовании перерыва за пределами петля ", но затем продолжал выполнять остальную часть кода в любом случае ...
Помогите мне быть глупым, пожалуйста.
Спасибо, я думаю, если я не могу быть хорошим программистом, я должен, по крайней мере, быть интересным;) На печальной ноте это не работает:/ – JawzX
, если я делаю код 'var mainPart = function() {alert (" It Worked! ");}' предупреждение не появляется с помощью кнопки отмены или стандартной кнопки «ОК». Если я изменю его на «var mainPart = (function() {alert (« It Worked! »);})();' Код запускается, и появляется предупреждение, независимо от того, какая кнопка нажата ... что означает, что он не отменяет Выполнение ... Есть ли что-то фундаментальное, что мне не хватает в выполнении javascript? – JawzX
См. Редактирование в сообщении. вы можете организовать сценарий двумя способами (просто поместите): 1) диалог «один выстрел» (см. пример) или 2) «на лету», где сценарий остается открытым, и вы продолжаете делать что-то. Смотрите мои примеры после эффектов на crgreen.com – CRGreen