AS2的迴圈
for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.onPress = function() { trace(i); }; } 這樣的語法似乎可行,但所有的test影片trace出來的結果都是10。 改用onEnterFrame後: for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.onEnterFrame = function() { trace(i); delete this.onEnterFrame; }; } //trace 目前:0 目前:1 目前:2 目前:3 目前:4 目前:5 目前:6 目前:7 目前:8 目前:9 10 10 10 10 10 10 10 10 10 10 看來as2會先把迴圈執行完成後,才對MovieClip的事件方法下定義。 所以解決的方式必需為: for (i=0; i this.attachMovie("test_mc", "test"+i, i, {_y:i*50}); var contain:MovieClip = this["test"+i]; trace("目前:"+i); contain.i=i; contain.onEnterFrame = function() { trace(this) trace(this.i); delete this.onEnterFrame; }; } 但有意思的是trace出來後的結果是 目前:0 目前:1 目前:2 目前:3 目前:4 目前:5 目前:6 目前:7 目前:8 目前:9 _level0.te...