爲什麼不是這個工作,因爲我認爲這多少:傳遞局部變量裝載機匿名處理函數
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。 –