如何从一个显示对象中删除所有事件侦听器? [英] How to remove all event listeners from a display object?

查看:193
本文介绍了如何从一个显示对象中删除所有事件侦听器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种方法,以确定哪些事件侦听器都注册到一个显示对象?我想从一个显示对象中删除所有事件侦听器,这样我可以分配新的基础上,应用程序上下文的变化。

Is there a way to determine which event listeners are registered with a display object? I want to remove all event listeners from a display object so that I can assign new ones based on context changes in the application.

推荐答案

jeceuyper是正确的......

jeceuyper is right ...

侧没有,但:的DisplayObject 扩展的EventDispatcher ,它已经确实实现 IEventDispatcher,请 ...所以要多precise:你需要重写的addEventListener removeEventListener 跟踪听众的...

a side not though: DisplayObject extends EventDispatcher, which already does implement IEventDispatcher ... so to be more precise: you need to override addEventListener and removeEventListener to keep track of the listeners ...

一些技术细节:我建议你使用词典存储处理函数......慢一点插入,但更快的去除...此外, 词典支持弱引用,这是事件处理的情况下,很重要的......也请记住,那将useCapture 允许添加同一个处理器的两倍......

a few technical details: i suggest you use Dictionary to store the handler functions ... a bit slower for insertion, but much faster for removal ... also, Dictionary supports weak references, which is quite important in the case of event handling ... also keep in mind, that useCapture allows to add the same handler twice ...

吉祥话......)

这篇关于如何从一个显示对象中删除所有事件侦听器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆