0

ExtendScript と InDesign に精通している方のために、ScriptUI に関する質問があります:ボタンがカスタム選択である場合に、ユーザーがいずれかのボタンを選択した後、ウィンドウを適切に閉じるにはどうすればよいでしょうか。以下のコードを参照してください。

$.writeln("The user pressed " + chooseOyo("123456"));

function chooseOyo(jobNumber) {
    var machine;
    var getOyoWindow = new Window ("dialog", "Which Imagesetter?");
        var textGroup = getOyoWindow.add("group");
            textGroup.orientation = "column";
            textGroup.add("statictext", undefined, "The current job is " + jobNumber);
            textGroup.add("statictext", undefined, "Please choose an imagesetter for this job:");
        var buttonGroup = getOyoWindow.add("group");
            var o1 = buttonGroup.add("button", undefined, "OYO 1");
            var o2 = buttonGroup.add("button", undefined, "OYO 2");
                o1.onClick = function () {machine = "OYO1";}
                o2.onClick = function () {machine = "OYO2";}

    if (getOyoWindow.show() == 1) {
        return machine;
    } else {
        exit();
    }
}

かなり単純ですね。これまでのところ、ボタンは何も実行せず、ウィンドウをキャンセルするには [ESC] を押す必要があります。どうすればこれを機能させることができますか?

4

2 に答える 2

2

編集:正しい答えを得ました:

$.writeln("The user pressed " + chooseOyo("123456"));
function chooseOyo(jobNumber) {
    var machine;
    var getOyoWindow = new Window ("dialog", "Which Imagesetter?");
        var textGroup = getOyoWindow.add("group");
            textGroup.orientation = "column";
            textGroup.add("statictext", undefined, "The current job is " + jobNumber);
            textGroup.add("statictext", undefined, "Please choose an imagesetter for this job:");
        var buttonGroup = getOyoWindow.add("group");
            var o1 = buttonGroup.add("button", undefined, "OYO 1");
            var o2 = buttonGroup.add("button", undefined, "OYO 2");
                o1.onClick = function () {
                    machine = "OYO1";

                    getOyoWindow.close(); // thats the trick!

                    }
                o2.onClick = function () {
                    machine = "OYO2";
                    }
    if (getOyoWindow.show() == 1) {
    return machine;

    } else {
    return;
    }
}

close() は正しかった。ただし、if(win.show() == 1)else{} ブロック内では使用しません。代わりに、いずれかのボタンの onClick 関数内で使用してください。

于 2013-06-14T07:06:15.257 に答える
0

このために、close button.onClick 関数内で getOyoWindow.hide() を試すこともできます。これは、else ステートメントでも試すことができます。お役に立てれば。ありがとう。

于 2021-03-07T02:03:26.757 に答える