>我创建了一个数组。每个元素都是一个按钮对象。是否可以同时在每个数组上钩住鼠标单击?我的意思是这样的。
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 循环的数组元素之一,但我问的是这种方式。
是的。您无法直接将索引传递到侦听器中,但可以通过调用侦听器内部的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
}