2010-05-13 32 views
1

我在我的flex應用程序中有各種mxml組件,它們都需要基於相同的數據顯示統計信息。我該怎麼做呢?我需要像cairngrom或puremvc這樣的mvc框架嗎?還是我可以在沒有它的情況下做到這一點? 任何設計思路?不同組件之間的flex共享數據

回答

0

你不需要任何框架。你知道數據綁定嗎?

http://www.flexafterdark.com/docs/Flex-Binding

這種方式可以爲許多組件設置你的數據作爲數據提供程序。例如,以顯示DataGrid中的數據,你在MXML中設置其屬性

dataProvider="{yourDataArrayCollectionIdentifier}" 

,並在你的ArrayCollection聲明中,您需要設置的元標記[綁定]

[Bindable] var yourDataArrayCollectionIdentifier : ArrayCollection; 

有,你可以爲數據提供程序使用其他數據類型,只是arrayCollection是最常見的

+0

我知道數據綁定我問的是如何在不同的mxml視圖之間共享數據?就像在不同模塊之間共享的全局數組一樣,只是我不喜歡全局數據。我正在考慮創建一個能夠訪問數據的單例類,只是想看看是否有更好的解決方案/這已經在之前完成了。 – user283403 2010-05-13 08:29:26

+0

你的意思是如何從每個組件獲得這些數據?您應該在創建時將這些數據傳遞到您的組件/模塊中。這比使用單身人士更清潔。 – marianboda 2010-05-13 15:23:26

0

有一些這方面的方法。出於封裝的目的,您應該將您的共享數據分離出一個單獨的類;可能是一個價值對象,儘管它不是必須的。

然後在此類類型的每個MXML組件中創建一個公共變量屬性。在創建每個mxml組件的實例時,傳入數據類的「全局」實例。

你不需要使用MVC框架,但是Cairngorm模型定位器也可以用來解決這個問題。模型定位器是一個單身人士。你會將數據存儲在單例實例中;然後每個MXML組件都會引用數據的單例。不過,像這樣創建外部依賴關係會破壞封裝。我非常喜歡非應用程序特定組件的參數傳遞路線。

0
​​

您現在可以在MXML中使用此消息進行實例化。

單例類用於您想要保存所有狀態的一些信息的不同場景。一個更好的例子是國際象棋棋盤,你的棋盤是單人班,並且它的狀態永遠不會改變,因爲你必須跟蹤所有在棋盤上移動的硬幣及其位置。

您正在將此消息變量注入要顯示數據的視圖中。

+0

它應該始終處於一個匿名包中,還是與您當前正在調用的包相同? – ina 2011-11-20 05:28:08

+0

是否需要[Bindable]? – ina 2011-11-20 05:30:33