讓我們考慮下面的例子,我有包含「Person」對象集合的「Document」對象,並且每個「Person」對象都有「Address」對象集合。當其中一個「地址」對象發生變化時,我需要調用服務器端方法來計算一個人(其「地址」已更改)的所有地址之間的最佳路徑並更新用戶界面。我需要知道地址之一發生了變化,地址發生了變化。 到目前爲止,我唯一的解決方案是實現某種事件冒泡。當「地址」對象發生變化時,它通知父(「人」對象)有關更改,「人」通知「文檔」。現在我們可以將偵聽器添加到「文檔」類並進行必要的操作。這種方法的缺點 - 我必須爲層次結構中的所有對象管理「父」鏈接。有人可以評論這個解決方案嗎?好嗎?或者我在這裏做錯了什麼?是事件冒泡模式適用於分層模型嗎?
謝謝。
Flex事件冒泡只適用於UI元素。我需要在模型類中冒泡。所以這是行不通的。 – Aleksey 2010-10-04 22:20:53
Bubbling是事件基礎結構的一部分,獨立於Flex UI Elements,完全不依賴於Flex。爲了能夠分派一個事件,你確實需要擴展EventDispatcher。但是,冒泡應該不管。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/EventDispatcher.html?filter_flex=4.1&filter_flashplayer=10.1&filter_air=2您知道的區別嗎? – JeffryHouser 2010-10-04 22:33:41
對不起,我的意思是事件冒泡只適用於可視化樹中的DisplayObject。我無法在文檔中找到此聲明的證據,但在我看來,這是顯而易見的 - IEventDispatcher如何知道誰在引用它,如果在不同對象中引用兩個參數? – Aleksey 2010-10-04 22:54:42