-1

それは本当に難しいですか?私のgoogle-fuは鈍いですか?残りのスクリプトの実行をキャンセルするキャンセル ボタンを作成するにはどうすればよいでしょうか。

私のスクリプトはばかげています。私は良いコーダーではありませんが、それは知っていますが、ここに私が持っているものがあります:

INDD CScloud を自動化しています。スクリプトは最初にウィンドウを開き、オペレーターはラジオボタンとしてオプションを持っています。下部には標準の「OK」および「キャンセル」ボタンがあり、スクリプトには、ウィンドウに表示されるオプションに基づいて処理を行う関数がいくつかあります。私がやりたいのは、「キャンセル」ボタンを押したときにすべてのコード実行を停止することです。それでおしまい!派手なものはありません!しかし、それがしているように見えるのは、ダイアログ ウィンドウを閉じて、変更を登録せずに続行することだけです。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、「ループ外でのブレークの不正な使用」についてエラーが発生しましたが、とにかく残りのコードの実行に進みました...

私が愚かにならないように助けてください。

4

1 に答える 1