当前位置:  开发笔记 > 编程语言 > 正文

flash AS3如何删除舞台事件监听器

如何解决《flashAS3如何删除舞台事件监听器》经验,为你挑选了1个好方法。

我正在flash和as3中构建动画,我有一个函数,我在其中添加一个阶段eventListener,stage.addEventListener(Event.ENTER_FRAME,setScrollPercent,false,0,true);

由于此事件是在函数函数内设置的,"两个函数深度",如何从函数外部重置所有阶段事件侦听器而不会出现错误?



1> dirkgently..:

AS eventlisteners的最佳实践是:

使它变弱(正如你所做的那样,addEventListener的最后一个参数)

处理后将事件监听器设置为null(严格来说,如果将其设置为弱,则不需要)

Flex不会给你析构函数.它有自己的垃圾收集器在后台运行管理内存.一旦没有对它的引用,它就会清理一块内存.好吧,强有力的参考.默认情况下,所有对象都具有强引用.事件处理程序,因为它们往往是性能瓶颈,具有声明自己弱的特殊能力 - 弱参考.当然,只有在使用该addEventHandler()函数附加事件处理程序时才可以这样做.GC没有考虑弱引用,因此,当所有强引用都消失后,它们将被自动垃圾收集,使您免于必须=null手动执行的紧张情况.当您未指定参数时,您将执行此操作.默认情况下,

然而,标记它们较弱会产生副作用.它们可以在你不知道的情况下消失在空气中.最终,你会知道,但就一个讨厌的bug而言.这是什么导致你的问题?也许,可能不是.你必须要做实验.此外,如果您可以向我们提供更多详细信息,例如确切的错误代码,某些来源,这将有所帮助.

希望这可以帮助.快乐屈服:)

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有