我有一個項目,有4個視圖,在tabBar中使用viewStack/NavigatorContent。我有幾個HTTPServices設置收集XML並轉換爲Bindable ArrayCollections。什麼時候以及如何將這些數據傳遞給圖表,數據網格等等,直到用戶點擊標籤才能看到?現在我有每個項目都設置了creationComplete函數,然後傳遞它。雖然它似乎在工作,這是最好的方式,還是有更好的,甚至更快?Flex - 將數據傳遞到選項卡式視圖
謝謝, 馬克
我有一個項目,有4個視圖,在tabBar中使用viewStack/NavigatorContent。我有幾個HTTPServices設置收集XML並轉換爲Bindable ArrayCollections。什麼時候以及如何將這些數據傳遞給圖表,數據網格等等,直到用戶點擊標籤才能看到?現在我有每個項目都設置了creationComplete函數,然後傳遞它。雖然它似乎在工作,這是最好的方式,還是有更好的,甚至更快?Flex - 將數據傳遞到選項卡式視圖
謝謝, 馬克
的最佳方法是使用數據綁定。假設您有一個主容器,其中包含代表標籤內容的女巫組件。所以,你應該有數據[Bindable]
特性在主容器類似如下:
[Bindable]
private var chartData:ArrayCollection;
[Bindable]
private var dataGridData:ArrayCollection;
等
所以對於該組件,含有圖表,你應該填充圖表數據與數據綁定:
<ViewStack>
…
<MyChartsTab chartData="{chartData}" />
…
</ViewStack>
當然,您應該在您的MyChartsTab
組件中引入相同的chartData
字段(請確保它是public
)。您的圖表也可以使用數據綁定來填充。
所以獲取數據後,您只需填寫主要組件中的字段,然後執行數據綁定即可完成剩餘工作,而無需擔心從您身邊進行初始化。
當創建你的意見,確保你允許公共變量(如「數據提供程序」),在那裏你可以綁定它需要的數據。就像這樣:
<mx:ViewStack>
<s:NavigatorContent>
<SomeComponent dataProvider="{someData}" />
</s:NavigatorContent>
<s:NavigatorContent>
<SomeComponent2 dataProvider="{someData}" />
</s:NavigatorContent>
</mx:ViewStack>
而且自定義組件內你必須:
private var _data:Object; // use strong typing if possible
public function set dataProvider(value:Object):void // use strong typing if possible
{
this._data = value;
}
public function get dataProvider():Object
{
return this._data;
}
謝謝你們,那真是太好了。 – 2011-04-19 16:48:36