簡單的滑鼠事件結構
通過使用 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;
}
}
這種方法的好處包括:
- 無需指定要應用事件的物件數量。
- 不需要具體知道哪些物件與之互動但仍然應用功能。
- 輕鬆應用批量事件。