【发布时间】:2018-09-10 18:48:04
【问题描述】:
我为一个简单的按钮编写了一些代码 - [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");
}
在这段代码中,如果我在 after effects 中运行脚本,按钮单击第一次会自动执行,然后当我单击它时它什么也不做。为什么这不起作用?
【问题讨论】:
-
我不知道后效脚本,但由于它的 javascript,我认为错误在于,当您分配 Click() 函数时,您使用括号,所以它就像调用函数而不是分配它。你应该这样做
Button1.onClick = Click;可能 -
那么如果我想添加一个必须带一些参数的 button.onclick 函数怎么办?像 button1.onClick = Click(x,y,) this .
-
无论如何,首先应该在函数声明中声明参数。
function Click(parameters...)。现在例如在浏览器环境中,您可以将事件对象声明为参数:function Click(event),并且从事件中您可以访问鼠标的 x、y 坐标、被点击的元素等。现在在你的情况下,我不知道你需要做什么,所以我无法提出建议。
标签: javascript scripting onclick after-effects