我希望删除 mc 及其所有计时器、事件...有没有简单的方法可以做到这一点?
当然...取消注册其计时器和事件,将其从其父级中删除,并删除对它的所有引用。 ;)
也就是说,AS3是一种垃圾收集语言,因此您无法控制对象(包括MC)何时被really从记忆中删除。当您删除对它的所有引用(包括事件注册)时,GC 将检测到不再需要它并为您清理它。
您可以(并且应该)做的一件事是,每当您注册活动时,请设置useWeakReference
参数为true
。那是:
myMC.addEventListener( Event.ENTER_FRAME, onFrame, false, 0, true );
这告诉 AS3 这个特定的事件侦听器不应算作引用 - 因此,如果您删除对 MC 的所有其他引用,即使您不注销侦听器,它也会被垃圾收集。 (至于计时器,如果您使用 setTimeout 或 setInterval,据我所知,它们也不被视为引用。但我对此不确定。)
所以总而言之,没有办法摧毁你的 MC 并让 Flash 清理一切。这就是 AS3 的工作原理 - 管理引用和事件是认真编码的一部分。如果您的 MC 不再有计时器或事件,已从其父级中删除,并且没有被代码的任何部分引用,那么它就消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)