0
我遇到了非常簡單的代碼問題。As2:在循環中創建函數
for(i=1;i<3;i++){
_root.otoczenie["z"+i].onPress = function()
{
trace(i)
}
}
爲什麼每個MovieClip(z1或z2)都會向跟蹤返回「1」,以及如何以其他方式構建它。
我遇到了非常簡單的代碼問題。As2:在循環中創建函數
for(i=1;i<3;i++){
_root.otoczenie["z"+i].onPress = function()
{
trace(i)
}
}
爲什麼每個MovieClip(z1或z2)都會向跟蹤返回「1」,以及如何以其他方式構建它。
首先,當你按下物品時,這應該跟蹤「3」。
問題是你所有的函數都跟蹤最後受到「for」影響的「i」的值。
你得值分配給每一個對象,例如:
for(var i:Number = 1; i <= 2 ; i++) {
_root.otoczenie["z"+i].myValue = i;
_root.otoczenie["z"+i].onPress = function() {
trace(this.myValue);
}
}
一個更好的辦法是使用代表團和使用一個共同的功能:
for(var i:Number = 1; i <= 2 ; i++) {
_root.otoczenie["z"+i].myValue = i;
_root.otoczenie["z"+i].onPress = mx.utils.Delegate.create(this,onItemPressed);
}
function onItemPressed() {
trace(this.myValue);
}