removeEventListener的重要性? AS3

时间:2015-05-13 10:48:53

标签: actionscript-3 flash addeventlistener

我有一些关于事件监听器的问题。请清楚地回答。

  1. 我们每次执行addEventListener时总是需要removeEventListener吗?
  2. 从舞台中删除对象时,是否还会删除其事件侦听器? 例如,假设我有一个带有事件监听器的文本字段,如下所示。

    txtField1.addEventListener(Event.CHANGE,F_onCHange_TxtField);

  3. 我有一个代码可以从舞台中删除文本字段 我的问题是:在删除文本字段时,它是否也会自动删除eventListener?

    1. 删除eventListeners时,它是否有助于提高性能或其他什么?

1 个答案:

答案 0 :(得分:3)

以下是我的回答,如果您有任何疑问请与我联系!

  1. 嗯,不完全是。但是,如果对象上存在活动事件侦听器,则永远不会对其进行垃圾回收。最好显式删除事件监听器,但至少要使用这样的弱监听器:

    myThing.addEventListener(Event.Complete,Handler,false,0,true);

  2. 最后一个参数是使它变弱的原因。

    1. 不,这就是你的第一个问题。从舞台中删除对象后,它仍然存在于内存中。如果你有一个强大的事件监听器,它将保留在那里。如果你把它放回舞台上,它仍然会回应它正在听的任何事件。

    2. 删除事件侦听器更多地与资源管理有关,但是如果你有一个实例,你经常创建新对象并创建事件监听器,你肯定要确保清理它们以防止持有在您申请的整个生命周期中所有这些对象。

    3. 我希望这有帮助!格兰特斯金纳有一些很棒的文章,我强烈建议你检查一下。 Start Here!