简单的鼠标事件结构

通过使用 event types,你可以轻松减少在通过过滤 1 个函数中的事件而不是定义许多事件处理函数时在舞台上为许多对象定义事件时经常发生的代码膨胀。

想象一下,我们在舞台上有 10 个物体名为 object1object2object10

你可以执行以下操作:

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. 轻松应用批量事件。