gpt4 book ai didi

actionscript-3 - 在循环中创建具有不同参数的匿名函数

转载 作者:行者123 更新时间:2023-12-04 03:05:40 24 4
gpt4 key购买 nike

我想制作一组循环按钮,并向它们添加一些事件,但匿名功能是相同的。我编写示例代码:

for(var i:int=0;i<5;i++)
{
var button:SimpleButton = new SimpleButton(...);
...
button.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void
{
trace(i);
});
}

...

我想从点击按钮而不是 4,4,4,4 .. 跟踪 0,1,2,3..
你知道我该怎么做吗?

最佳答案

您遇到的问题是 ActionScript 不支持闭包。

换句话说,变量 i每个函数不会被复制到它自己的上下文中。所有函数都引用 i 的同一个实例.

更多信息在这里:
http://flex.sys-con.com/node/309329

为此,您需要一个生成函数的函数:

public function makeFunction(i:int):Function {
return function(event:MouseEvent):void { trace(i); }
}

现在,您可以使用自己的上下文创建函数的新实例:
button.addEventListener(MouseEvent.CLICK, makeFunction(i));

关于actionscript-3 - 在循环中创建具有不同参数的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com