2014-04-01 46 views
0

我已经创建了一个数组。每个元素都是一个按钮对象。是否有可能同时钩住每个阵列上的鼠标点击?我的意思是这样的。每个数组元素的监听器

var Objects:Array = new Array 
Objects[0] = new button(parameters) 
Objects[1] = new button(parameters) 
Objects[2] = new button(parameters) 

Objects[n].addEventListener(MouseEvent.CLICK, Clicked(n)); 

function Clicked(n,...) 
{ 
     THECODE PROCEEEEDS for Objects[n] 
} 

我知道这不是最清晰和最正确的文字,但我问这是否有可能以相似的方式?以及如何做到这一点?我知道我可以钩住每一个鼠标点击,然后检查鼠标下的点击是否使用for循环的数组元素之一,但我正在问这种方式。

回答

0

是的。您无法直接将索引传递给侦听器,但您可以通过在其中调用indexOf()来检索该索引。

for each (b in Objects) b.addEventListener(MouseEvent.CLICK, clicked); 
// note, you just put function name here! 
public function clicked(e:MouseEent):void { 
    var i:int=Object.indexOf(e.target); 
    if (i==-1) { 
     // panic behavior 
     return; 
    } 
    // now you can parse that index into something valuable 
}