【发布时间】:2015-07-02 12:06:55
【问题描述】:
我有一个名为 ary 的数组和这个数组中的一些对象,即 ary[0]、ary[1]、ary[2]、ary[3] 和 ary[4]。每个都有一个 text 属性element.我想为ary中的所有元素添加一个eventListener并将属性传递给一个函数。首先,我这样做如下:
ary[0].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[0].topname.text)}); ary[1].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[1].topname.text)}); ary[2].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[2].topname.text)}); ary[3].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[3].topname.text)}); ary[4].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[4].topname.text)});function toGo(e:MouseEvent,str:String){
......
}
它确实有效。但是当我在 for(...){...} 中更改它时,它有一个错误。
for(var i=0;i<arylength;i++){
ary[i].addEventListener(MouseEvent.CLICK,function(e:MouseEvent){toGo(e,ary[i].topname.text)});
}
对于上面的代码,我得到一个错误“TypeError: Error #1010: A term is undefined and has no properties.”。然后我也尝试了另一种方式。
for(var i=0;i 它没有错误,但是我得到的变量“namestr”始终是ary中最后一个元素的变量。为什么? 我在哪里犯错了? 谢谢。
【问题讨论】:
标签: actionscript-3 flash