Apache flex 何时扩展EventDispatcher

Apache flex 何时扩展EventDispatcher,apache-flex,flash,actionscript-3,events,dispatcher,Apache Flex,Flash,Actionscript 3,Events,Dispatcher,简单的问题..我想知道你们什么时候在班上扩展EventDispatcher。在我看来,只要我们有导入事件包,我们就可以毫无问题地调度event…我看到有些人在他们的类中扩展EventDispatcher…不知道为什么…有人愿意解释一下吗?非常感谢…我认为您可能会混淆这样一个事实,即AS3中的许多对象将EventDispatcher扩展到继承树中更高的位置,而只需要导入flash.events包就可以分派事件。例如,许多DisplayObject类扩展了EventDispatcher。以下是几个例

简单的问题..我想知道你们什么时候在班上扩展EventDispatcher。在我看来,只要我们有导入事件包,我们就可以毫无问题地调度event…我看到有些人在他们的类中扩展EventDispatcher…不知道为什么…有人愿意解释一下吗?非常感谢…

我认为您可能会混淆这样一个事实,即AS3中的许多对象将EventDispatcher扩展到继承树中更高的位置,而只需要导入flash.events包就可以分派事件。例如,许多DisplayObject类扩展了EventDispatcher。以下是几个例子:

Shape » DisplayObject » EventDispatcher » Object

Sprite » DisplayObjectContainer » InteractiveObject » DisplayObject » EventDispatcher » Object
通常,每当我使用一个自定义类时,如果某个内部属性已更改或某个函数正在发生,我都会扩展EventDispatcher,该自定义类只需要与其作用域之外的对象通信。以下是一个例子:

public class Clock extends EventDispatcher
{
     protected var _tick:uint;

     protected function run():void
     {
         if( _tick + 1 > 60 ) {
             _tick = 0;
         } else {
             _tick++;
         }
         dispatchEvent( new Event( Event.CHANGE ) );
     }

     public function getTick():uint { return _tick; }
}
有时,将对象的内部细节保持为只读是“重要的”。在上面的示例中,当调用
run()
方法时,
Clock
类执行一些内部逻辑,然后发送一个事件,指示发生了更改。任何正在侦听该事件的类都可以调用public
getTick()
方法来查找
\u tick
的值。这将隐藏实现并保护
\u tick
变量不被外部类更改,同时提供一个接口,通过该接口可以读取
时钟