通过使用,event types您可以通过过滤1函数中的事件而不是定义许多事件处理函数,来轻松地减少在舞台上为多个对象定义事件时经常发生的代码膨胀。
想象一下,我们在舞台上有10个名为的对象object1,object2...object10
您可以执行以下操作:
var i: int = 1;
while(getChildByName("object"+i) != null){
var obj = getChildByName("object"+i)
obj.addEventListener(MouseEvent.CLICK, ObjectMouseEventHandler);
obj.addEventListener(MouseEvent.MOUSE_OVER, ObjectMouseEventHandler);
obj.addEventListener(MouseEvent.MOUSE_OUT, ObjectMouseEventHandler);
obj.alpha= 0.75;
i++;
}
function ObjectMouseEventHandler(evt:Event)
{
if(evt.type == "click")
{
trace(evt.currentTarget + " has been clicked");
}
else
{
evt.currentTarget.alpha =evt.type== "mouseOver" ? 1 : 0.75;
}
}这种方法的好处包括:
无需指定要应用事件的对象数量。
不需要专门知道与哪个对象进行了交互,但仍然可以应用功能。
轻松批量应用事件。