2

我想知道实现的对象是否IEventDispatcher真的调度了任何东西。我无法侦听所有可能的事件,而且似乎我无法覆盖dispatchEvent()子类中的方法来跟踪对象的底层功能 - 正在调度事件,触发侦听器,但未调用覆盖方法。那么,我怎样才能知道一个未知事件是否已经被分派,并至少得到它的类型呢?有问题的特定对象是TextField,因为我想跟踪通过任何可用方法更改其文本的尝试,并对更改做出反应。这个问题起源于哪里。

4

1 回答 1

0

TextField 是一个记录类,你实际上有一个它可以调度的所有事件的列表,所以你可以收听所有事件(我不能提供更多关于覆盖 dispatchEvent 的信息,恕我直言它应该可以工作,但我从未测试过它) .

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

  • 如果您可以覆盖 TextField 类并对其进行实例化,那么您可以覆盖 text setter: override public function set text(text:String):void

  • 另一种解决方案是放置一个事件侦听器Event.ENTER_FRAME并在那里检查 TextField 的 text 属性是否已更改。这更残酷,但在您不自己创建 TextField 的情况下会起作用。

于 2013-08-13T13:52:25.377 回答