0

快速提问;我应该使用removeChild()还是removeEventListener()先使用?

另外,如果我将一个对象设置为null,我还需要从该对象中删除事件侦听器吗?

4

2 回答 2

3

“在 removeChild 之前删除事件侦听器。”

以其他方式执行是否会引发错误,完全取决于您正在收听的事件以及事件触发后您尝试访问的对象。

但尽可能快地删除事件侦听器始终是一个好习惯。

例如:如果您需要单击一次按钮并且您似乎在单击后禁用了该按钮,那么让侦听器保持运行是没有意义的。


是的,您确实需要手动删除所有事件侦听器。但是你也可以使用弱事件监听器:

addEventListener(MouseEvent.CLICK, clicked, false, 0, true);

当对象设置为空时,它提示垃圾收集器删除侦听器。

于 2012-08-03T02:26:32.083 回答
1

我应该在 removeChild 之前删除所有 eventListener,还是在 eventListener 之前删除所有 eventListener。

这些任务是不相关的,所以没关系。也就是说,有一些事件是通过删除一个孩子触发的,所以如果你依赖Event.REMOVED_FROM_STAGE,那么你需要在之后删除事件监听器。

如果我将一个对象设置为 NULL,我还需要 removeEventListener 吗?

是的。

于 2012-08-03T02:22:41.177 回答