簡單的問題..我想知道你們什麼時候在你們班擴展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. 什麼時候在擴展Component的類中調用render()?
- 3. 什麼時候應該擴展Java中的Thread?
- 4. 什麼時候AWT(擴展)修飾符保證有效?
- 5. 什麼時候應該使用HtmlHelper擴展方法?
- 6. 什麼時候應該避免擴展方法?
- 7. 什麼時候應該使用託管擴展性框架?
- 8. 什麼時候應該停止擴展CSP的視野?
- 9. 什麼時候POCO類的擴展方法過度殺傷?
- 10. 我們什麼時候使用接口擴展接口
- 11. 什麼是phtml,什麼時候應該使用.phtml擴展名而不是.php?
- 12. WPF-如何讓任何時候只擴展一個擴展器
- 13. 擴展輸入時表格列擴展,爲什麼?
- 14. 什麼時候'System.ExecutionEngineException'ocurs?
- 15. 什麼時候使用擴展/抽象和實現/在PHP接口
- 16. 什麼時候UndecidableInstances安全?一些關於GHC擴展的一般問題
- 17. PHP類/ OOP:什麼時候「引用」類中的類與擴展類?
- 18. 什麼時候可以在#include指令中省略文件擴展名?
- 19. 什麼時候必須爲IEnumerable擴展方法指定類型<T>?
- 20. 什麼時候返回空集合,什麼時候不是?
- 21. SQL Server CASE什麼時候不使用CASE什麼時候
- 22. QTreeWidget :: currentItem什麼時候沒有選擇什麼時候返回?
- 23. ZF2什麼時候使用getServiceLocator()什麼時候不到
- 24. 什麼時候應該使用async/await,什麼時候不用?
- 25. 什麼時候使用GWT,什麼時候不需要
- 26. Application.DoEvents,什麼時候需要,什麼時候不需要?
- 27. 什麼時候使用__proto__和什麼時候使用原型
- 28. 什麼時候編譯和構建,什麼時候不用.NET?
- 29. 什麼時候是K 1024,什麼時候是1000?
- 30. 什麼時候注入構造函數,什麼時候是CDI
不錯的解釋... + 1 .....:D – FlyingCat 2010-08-08 21:54:52