【发布时间】:2013-08-13 11:48:43
【问题描述】:
我想知道实现IEventDispatcher 的对象是否真的调度了任何东西。我无法监听所有可能的事件,而且似乎我无法覆盖子类中的 dispatchEvent() 方法来跟踪对象的底层功能 - 正在调度事件,触发侦听器,但覆盖方法不是叫。那么,我怎样才能知道一个 unknown 事件是否已经被调度,并且至少得到它的类型呢?有问题的特定对象是TextField,因为我想跟踪通过任何可用方法更改其文本的尝试,并对更改做出反应。 The question where this originated.
【问题讨论】:
-
我很确定你可以覆盖 dispatchEvent,但是如果不看你的代码就很难说出了什么问题。
-
@AmyBlankenship 我正是这样做的,
override public function dispatchEvent(event:Event):Boolean { trace(event.type); return super.dispatchEvent(event); }并实例化了一个子类,而被覆盖的函数只是没有被调用。我的意思是我需要观察由一个实例触发的事件,而不是跟踪文本属性的特定问题。 -
您是在 Flash pro、Builder 中执行此操作的吗?您确定实际使用了子类吗?例如,您实际上不能在舞台上创建 TextField 的子类——您必须通过代码进行实例化。这适用于任何 InteractiveObject,还是仅发生在 TextField 子类上?
-
@AmyBlankenship FlashDevelop,因此没有阶段和完全控制我要实例化的内容。所以是的,使用了子类。我还没有检查其他交互式对象,但我需要一个正在调度事件的对象。加载器可能会这样做,因为它调度了相当多的事件。
标签: actionscript-3 events