代码之家  ›  专栏  ›  技术社区  ›  Ashine

在flex中删除所有事件侦听器

  •  3
  • Ashine  · 技术社区  · 14 年前

    如何一次删除所有组件上的所有事件侦听器,特别是当不知道哪些侦听器连接到每个组件时?

    4 回复  |  直到 12 年前
        1
  •  3
  •   Drenai    14 年前

    您可以重写uicomponent所固有的mx.core.flexsprite,并生成一个已创建的侦听器数组。Doug Mc Cune发布源代码 here .

    他的博客说:removeAllEventListeners()删除所有类型的事件监听器。这会同时彻底清除组件的所有事件侦听器。

    让我们知道这是否起作用!

        2
  •  1
  •   JeffryHouser    14 年前

    不!

    你可以用它来模仿 hasEventListener willTrigger . 但是,似乎没有一种明显的方法可以在不知道方法名的情况下删除事件侦听器。

    你想这样做是为了什么?

        3
  •  0
  •   JabbyPanda    14 年前

    这项任务在Adobe Jira中有一个问题,如果你觉得它对你很重要,请投票。

    https://bugs.adobe.com/jira/browse/SDK-14127

        4
  •  0
  •   user835430    14 年前

    Elrom在他的实现上发布了一篇文章,用于存储事件侦听器引用,并能够一次删除所有引用:

    http://elromdesign.com/blog/2010/07/16/easy-way-to-store-event-listeners-reference-prevent-memory-leaks/