为什么不是这个工作,因为我认为这多少:传递局部变量装载机匿名处理函数
var i:int=-1;
for each(obj in myData)
{
i++;
var loader:Loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(event:Event)
{
trace(i);
});
}
有在myData的3个对象,并跟踪声明的样子:
2
2
2
代替:
0
1
2
如果我添加i
到阵列(像myArr.push(i)
)它将有3种元素,0,1和2
任何想法? 谢谢。
啊,我现在明白了。当所有字节被加载时,匿名函数会触发。我认为它一直是像JS那样的一个“变量”,并且像声明时那样持有它。谢谢。 – Francisc
您正在考虑JavaScript中的闭包.. ActionScript(即ECMAScript变体)也会这样做,但是您必须将所有内容包装到另一个函数中,并将'i'存储在本地变量中,如下所示:http:// pastebin.com/iRdMZ0uc。 –