我将此模块的实例添加到显示列表中,然后将其删除。 附加到foo的事件监听器是否会造成泄漏? 一个简化的模块:
<s:Module creationComplete="init()">
<fx:Script>
protected var foo:Bar = new Bar();
protected function init() {
foo.addEventListener(MouseEvent.CLICK, foo_clickHandler);
}
protected function foo_clickHandler(event:MouseEvent):void {
//do something
}
</fx:Script>
</s:Module>
答案 0 :(得分:1)
此模块没有内存泄漏,因为您将侦听器添加到本地对象,而不是Stage
,StyleManager
或其他一些全局可访问的内容。
答案 1 :(得分:0)
会的。您应该删除侦听器,或在创建侦听器时使用弱引用。
foo.addEventListener(MouseEvent.CLICK, foo_clickHandler, false, 0, true);