我开发了我的第一个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,我会这么做 –