我開發了我的第一個Flex應用程序,它是TabbedViewNavigatorApplication。應用程序工作正常,但當我在「配置文件處理程序」中測試應用程序時,隨着我瀏覽應用程序,內存使用量不斷增加。當我知道這一點時,我必須刪除所有添加的eventlistener,並且必須使不再需要的對象無效。當我在標籤之間切換時,標籤一次又一次地初始化。柔性移動項目:內存管理
我不知道在哪裏可以刪除eventlisteners。我的意思是,我爲每個事件聽衆編寫了函數。當控制進入函數定義時,是否需要刪除eventlistener?
我寫的示例代碼
var more:Image = new Image();
more.width = 70;
more.height=29;
more.x=10;
more.y=276;
more.source = "Assets/more button.png";
more.addEventListener(MouseEvent.CLICK, MORE_clickHandler);
mainGroup.addElement(more);
private function MORE_clickHandler(e:MouseEvent):void {
// Do I need to remove the eventlistener here
}
而且,我需要明確廢止,我創建或垃圾收集器會處理這件事Image類的對象。如果我需要明確地取消它,在哪裏做到這一點。
謝謝
嗨J_A_X,如何以及在哪裏刪除事件監聽器和無效引用變量的位置。你能舉個例子嗎? –
我不能展示一個例子,因爲它取決於你想要完成的行爲。就像調用'removeEventListener'一樣簡單,使用'removeElement'從顯示列表中移除並執行'yourVar = null;'。 –
謝謝J_A_X,我會這麼做 –