我目前正在使用使用FlexGlobals訪問一個ArrayCollection,我有我開發的移動應用程序的默認視圖的新方法。下面是構成其儘快應用程序啓動發生在默認視圖陣列的創建和人口代碼:嘗試使用FlexGlobals訪問的ArrayCollection?
private var ids:ArrayCollection = new ArrayCollection();
private function loop():void
{
var index:int;
for(index = 0; index < compsCollection.length; index++)
{
trace("Element " + index + " is " + compsCollection[index].comp_id);
trace(ids.length);
ids.addItem(compsCollection[index].comp_id);
}
}
現在這段代碼運行時,我可以清楚地從控制檯看到, 「ids」ArrayCollection正在正確填充。現在在應用程序的不同視圖中,我想訪問這些數據並將其用於各種事情。我用下面的代碼,試圖訪問數據中的ArrayCollection:
protected var ids_list:ArrayCollection = new ArrayCollection();
protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
{
var obj:Object = FlexGlobals.topLevelApplication.parameters;
ids_list.source = obj.ids;
trace(ids_list.length);
}
當我嘗試這方面,我沒有得到一個錯誤,不過跟蹤語句返回「0」。所以我也試過了:
protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
{
ids_list.source = FlexGlobals.topLevelApplication.parameters.ids;
trace(ids_list.length);
}
它在trace語句中再次返回「0」。我終於嘗試這個,看看它是否會工作:
protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void
{
ids_list.source = FlexGlobals.topLevelApplication.ids;
trace(ids_list.length);
}
當我嘗試這樣做,導航到該代碼將initated我得到這個錯誤的觀點:
Error #1069: Property ids not found on Main and there is no default value.
我只能假設我在默認視圖中創建的ArrayCollection一旦離開它,就沒有任何價值。反正任何人都可以請幫我這個,因爲似乎旁邊就怎麼做這類事情FlexGlobals沒有文件?由於
更多關於爲什麼要避免全局狀態,退房http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/ –