2012-09-15 31 views
0

我想減少我的代碼,所以這裏是一個問題:如果我有10個事件監聽器,並且在不同的情況下我必須添加或刪除它們,有沒有辦法將所有「addEventListener」函數和其他函數中的「removeEventListener」,並輸入「add/removeEventListenerFuction」而不是10次10​​個事件監聽器。任何答案都會有幫助。現在感謝。在Actionscript 3中添加事件監聽器

+0

這個問題還不太清楚。您將無論如何都必須控制所有事件監聽器,手動啓用和禁用它們在自己的生命週期中。如果你想要一個可以添加10個事件監聽器的函數,而另一個函數可以一次性刪除它們,那麼你可以編寫這樣一個函數,但是如果你想單獨控制所有10個函數,那麼我想你最好寫個人調用添加/ removeEventListener。 – Vesper

+0

你經常創建和刪除什麼樣的事件? – Moorthy

回答

0

如果知道事件類型並將事件處理函數存儲在數組中,應該可以在循環中調用add/removeEventListener。

var events:Array = [{"type":MouseEvent.CLICK,"handler":func1}, 
    {"type":MouseEvent.MOUSE_DOWN,"handler":func2}, 
    {"type":MouseEvent.MOUSE_UP,"handler":func3}, 
    {"type":MouseEvent.MOUSE_OVER,"handler":func4}]; 

for(var i:int=0; i<events.length; i++) { 

    stage.addEventListener(events[i].type,events[i].handler); 
    // to remove 
    // stage.removeEventListener(events[i].type,events[i].handler); 
} 

我不明白爲什麼這會是有用的,雖然,也許如果你試圖解釋你正在嘗試做的,並顯示一些代碼,我可以幫助更多。