gpt4 book ai didi

actionscript-3 - ActionScript 3 : Do you need to remove EventListeners?

转载 作者:行者123 更新时间:2023-12-01 13:07:25 24 4
gpt4 key购买 nike

在 actionscript 3 中,我动态创建对象并向其添加 EventListener。这些对象被添加到数组中,稍后可能会再次被删除。其他人可能会在以后再次添加。每次我创建一个对象时,我都会将这些 EventListeners 添加到它们中。但是,删除这些对象时是否也需要删除这些事件监听器?当我丢失对某个对象的所有引用但不删除这些 EventListener 时会发生什么?它们是留在内存中的某个位置,无法访问且不可用,还是 GC 会清理它们?

最佳答案

是的,如果您不使用弱引用,则必须删除事件监听器。如果存在对对象的引用,GC 将不会清除该对象,并且注册事件监听器会创建对该对象的引用,除非您设置 useWeakReference 参数(第 5 addEventListener 方法的参数)设置为 true,同时注册事件监听器。垃圾收集器不会计算弱引用。

//Using strong reference: needs to be removed by calling removeEventListener
sprite.addEventListener(Event.TYPE, listenerFunction, useCaptureBool, 0, false);

//Using a weak reference: no need to call removeEventListener
sprite.addEventListener(Event.TYPE, listenerFunction, useCaptureBool, 0, true);

关于actionscript-3 - ActionScript 3 : Do you need to remove EventListeners?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2004983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com