2012-08-03 51 views

回答

3

「在removeChild之前刪除事件偵聽器。」

無論做其他的方式將拋出一個錯誤與否,完全取決於你正在聽&你想在事件觸發後訪問對象的事件。

但它總是一個很好的做法,儘可能快地移除事件偵聽器。

例如:如果您需要點擊一個按鈕一次&您似乎在單擊後禁用按鈕,保持偵聽器運行無效。


是的,你需要手動刪除所有事件監聽器。但你也可以使用弱事件偵聽器:

addEventListener(MouseEvent.CLICK, clicked, false, 0, true); 

這暗示垃圾收集器時,對象設置爲null可刪除監聽器。

+1

你可能想在第二個例子中提到你指的是'useWeakReference'參數 - 目前缺少上下文:) – Marty 2012-08-03 02:28:40

+0

@MartyWallace謝謝,更新:) – loxxy 2012-08-03 02:29:09

+0

偉大的答案謝謝 – Bruce 2012-08-03 04:05:17

1

我應該在removeChild或removeChild before eventListener之前刪除所有eventListener。

這些任務是無關的,所以沒關係。也就是說,有些事件是由移除孩子觸發的,所以如果您依賴於Event.REMOVED_FROM_STAGE,那麼您需要刪除事件監聽器AFTER。

如果我設置一個對象爲NULL,我還需要removeEventListener嗎?

是的。

相關問題