After Effects脚本按钮元素onclick

时间:2018-09-10 18:48:05

标签: javascript scripting onclick after-effects

我为一个简单的按钮[[onclick]写了一些代码。我想知道什么是正确的方法,或者为什么它不能以我编写的方式起作用?

function main(thisObj) {
    function windowCreate(thisObj) {

        var mainWindow = (thisObj instanceof Panel) ? thisObj : new 
        Window("palette", "", [100, 100, 300, 280]);//

        var groupOne = mainWindow.add ("group", [0,0,310,210], "Positions");
        groupOne.orientation = "row";

        Button1 = groupOne.add("button",[10,10,100,40],"P_0:0");


        return mainWindow;
    }

    var Window1 = windowCreate (thisObj);
    if ((Window1 != null) && (Window1 instanceof Window)) {
        Window1.center();
        Window1.show();
        }
    }
    main(this);
        }
    Button1.onclick = Click();

    function Click(){
            alert("Button 1 clicked");
        }

在此代码中,如果我在后效应中运行脚本,则第一次单击按钮时将自动执行单击,然后单击该按钮时则不执行任何操作。为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

这有效:

function windowCreate() {
    mainWindow.groupOne = mainWindow.add ("group", [0,0,310,210], "Positions");
    mainWindow.groupOne.orientation = "row";

    mainWindow.Button1 = mainWindow.groupOne.add("button",[10,10,100,40],"P_0:0");
    mainWindow.Button1.onClick = function() { Click(); };
    return mainWindow;
}


function Click(){
    alert("Button 1 clicked");
}

var mainWindow = new Window("palette", "", [100, 100, 300, 280]);//
var Window1 = windowCreate();
if ((Window1 != null) && (Window1 instanceof Window)) {
Window1.center();
Window1.show();
}

我正在使用CC2014。