我的代码非常简单。
for(i=1;i<3;i++){
_root.otoczenie["z"+i].onPress = function()
{
trace(i)
}
}
为什么每个MovieClip(z1或z2)都会向跟踪返回“1”,以及如何以其他方式构建它。
答案 0 :(得分:0)
首先,按下项目时应该跟踪“3”。
问题是你的所有函数都追踪“i”的值,这是受“for”影响的最后一个。
您必须为每个对象分配值,例如:
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);
}