2014-04-01 144 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 
}