2010-12-20 50 views

回答

2

是調度Event是緩慢的,如果性能是你的目標,你可以去你自己的事件系統或者如果你不'我想重新發明輪子,看看Robert Penner的as3 signals library

+0

感謝AS3的信號,我真的看性能。 – user310291 2010-12-20 19:31:52

3

該文章的作者並沒有聲稱它的性能更快。

相反,它是一種替代體系結構。使用內置的事件系統,您可以訂閱發佈商的事件。在這篇文章中,有一個單獨的「數據總線」彙總了您訂閱的事件。

最終,它解決了一個不同的問題,國際海事組織。該文章中的ObserverManager發出可由系統中的任何對象拾取的事件。對於像「播放電影」,「暫停電影」,「導航到鏈接」等事件,任何人都可以發佈它,任何人都可以訂閱它。它鬆散耦合。有點像CB廣播。

另一方面,Flex/Flash中的事件模式更加貼心。例如,模型對象上的屬性已更改,並且UI想要顯示它。事件反對對象。它更緊密地耦合在一起 - 對象需要相互引用。有點像一個電話(或者,因爲它是單向的,電報,也許?)

+0

我喜歡你的答案非常多,我不能標記2個很好的答案否則我會這樣做。你的博客也很有趣,我會經常訪問它。 – user310291 2010-12-20 19:33:24

0

您好我覺得作者的代碼可以被優化 像 公共職能退訂(觀察員:IObserver):無效{

 var index:int=indexof(observerData); 
     if(index>0) 
     { 
      observerData.splice(index,1); 

     } 

}