跟踪对象发送的所有事件

时间:2013-08-13 11:48:43

标签: actionscript-3 events

我想知道实现IEventDispatcher的对象是否实际调度了什么。我无法监听所有可能发生的事件,似乎我无法覆盖子类中的dispatchEvent()方法来跟踪对象的底层功能 - 正在调度事件,触发器被触发,但是重写方法不是不叫。那么,我怎样才能知道是否已经调度未知事件,并且至少得到它的类型?有问题的特定对象是TextField,因为我想跟踪通过任何可用方法更改其文本的尝试,并对更改做出反应。 The question where this originated.

1 个答案:

答案 0 :(得分:0)

TextField是一个documented class,你实际上有一个它可以发送的所有事件的列表,所以你可以听取所有这些事件(我无法提供有关覆盖dispatchEvent的更多信息,imho它应该工作但是我从未测试过它。)

但是,如果您只想跟踪文本的更改,我可以看到两个应该有效的解决方案:

  • 如果您可以覆盖TextField类并改为实例化它,那么您可以覆盖文本设置器:override public function set text(text:String):void

  • 另一个解决方案是在Event.ENTER_FRAME上放置一个事件监听器,并检查TextField的text属性是否已更改。这更加残酷,但是在您不自己创建TextField的情况下也可以使用。