Apache flex 何时扩展EventDispatcher
简单的问题..我想知道你们什么时候在班上扩展EventDispatcher。在我看来,只要我们有导入事件包,我们就可以毫无问题地调度event…我看到有些人在他们的类中扩展EventDispatcher…不知道为什么…有人愿意解释一下吗?非常感谢…我认为您可能会混淆这样一个事实,即AS3中的许多对象将EventDispatcher扩展到继承树中更高的位置,而只需要导入flash.events包就可以分派事件。例如,许多DisplayObject类扩展了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。以下是几个例
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
类执行一些内部逻辑,然后发送一个事件,指示发生了更改。任何正在侦听该事件的类都可以调用publicgetTick()
方法来查找\u tick
的值。这将隐藏实现并保护\u tick
变量不被外部类更改,同时提供一个接口,通过该接口可以读取时钟