简单的问题..我想知道你们什么时候在你们班扩展EventDispatcher。在我看来,只要我们有导入事件包,我们可以dispatchEvent没有问题....我看到有人在他们的课程中扩展EventDispatcher ...不知道为什么...任何人都在意解释?感谢百万...什么时候扩展EventDispatcher
2
A
回答
8
我想你可能会混淆的事实,许多对象在AS3扩展EventDispatcher在继承树更高,只需要导入flash.events包,以分派事件。例如许多DisplayObject类扩展了EventDispatcher。这里有几个例子:
Shape » DisplayObject » EventDispatcher » Object
Sprite » DisplayObjectContainer » InteractiveObject » DisplayObject » EventDispatcher » Object
通常我会延长此事件的任何时间,我与刚需之外的它的范围,一些内部属性发生变化或者某些功能是将对象进行通信的自定义类工作发生的历史。这里是一个例子:
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
类执行一些内部逻辑,然后调度一个事件指示事件已经改变。任何正在监听该事件的班级都可以致电公众getTick()
方法以找出_tick
的值。这隐藏了实现并且保护变量不被外部类改变,并且同时提供了可以通过其读取Clock
的接口。
相关问题
- 1. 什么时候应该扩展NSDocument,什么时候应该扩展NSWindowController?
- 2. 什么时候应该停止扩展CSP的视野?
- 3. 什么时候应该避免扩展方法?
- 4. 什么时候POCO类的扩展方法过度杀伤?
- 5. 什么时候应该使用HtmlHelper扩展方法?
- 6. 什么时候在扩展Component的类中调用render()?
- 7. 什么是phtml,什么时候应该使用.phtml扩展名而不是.php?
- 8. WPF-如何让任何时候只扩展一个扩展器
- 9. 什么时候'System.ExecutionEngineException'ocurs?
- 10. 什么时候可以在#include指令中省略文件扩展名?
- 11. 什么时候必须为IEnumerable扩展方法指定类型<T>?
- 12. 什么时候UndecidableInstances安全?一些关于GHC扩展的一般问题
- 13. 什么时候使用扩展/抽象和实现/在PHP接口
- 14. PHP类/ OOP:什么时候“引用”类中的类与扩展类?
- 15. 什么时候注入构造函数,什么时候是CDI
- 16. 什么时候应该使用AWS,什么时候不使用
- 17. Application.DoEvents,什么时候需要,什么时候不需要?
- 18. intn_t什么时候使用它,什么时候不使用
- 19. 什么时候加入名字,什么时候不加入?
- 20. 什么时候是K 1024,什么时候是1000?
- 21. 什么时候去接口,什么时候去抽象类
- 22. 什么时候使用GWT,什么时候不需要
- 23. 什么时候使用__proto__和什么时候使用原型
- 24. ZF2什么时候使用getServiceLocator()什么时候不到
- 25. SQL Server CASE什么时候不使用CASE什么时候
- 26. 什么时候使用Ruby和什么时候使用PHP
- 27. 什么是标记扩展?
- 28. android.support.v4.app.FragmentActivity扩展了什么?
- 29. 什么是扩展方法?
- 30. Haskell的扩展是什么?
不错的解释... + 1 .....:D – FlyingCat 2010-08-08 21:54:52