actionscript 3-是否可以将变量传递到函数名称中



我是编程新手,如果我误用了术语,请提前道歉。

在"for循环"中,我想为一系列按钮添加一个事件侦听器。对于每个按钮,我想定义一个不同的功能。在命名函数时,是否可以传递变量?

我的按钮都有按顺序命名的实例名称。

这是我的代码:

for (var cBut:int = 1; cBut < 4; cBut++)
{
this["c" + cBut].addEventListener(MouseEvent.CLICK, ["orangeValue" + cBut]);
}

以及由此产生的错误:TypeError:错误#1034:类型强制失败:无法将[]@42f50a89转换为Function。

提前感谢您的帮助。

也就是说"向this["c" + cBut]添加一个事件侦听器。侦听MouseEvent.CLICK,当发生这种情况时,会触发函数new Array( "orangeValue" + cBut )。数组无法处理函数,该数组中唯一的元素将是String.。"

你想要的是this["orangeValue" + cBut].<whatever function handles click>。(函数是监听AS3中的事件所需要的。这与AS2)不同。实际上,最好的办法是也使用辅助函数——它可以保证没有范围问题:

for (var cBut:int = 1; cBut < 4; cBut++)
{
    helper( cBut );
}
function helper( cBut:int ):void
   this["c" + cBut].addEventListener(MouseEvent.CLICK, 
                                     this["orangeValue" + cBut].clickHandler);
}

最新更新