ActionScript 3 简单的鼠标事件结构

示例

通过使用,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;
    }
}

这种方法的好处包括:

  1. 无需指定要应用事件的对象数量。

  2. 不需要专门知道与哪个对象进行了交互,但仍然可以应用功能。

  3. 轻松批量应用事件。