2009-11-10 25 views
0

我有不同的狀態的部件,當我在另一個國家分配一定的價值,我得到一個運行時錯誤[空]Flex 3的:美國:creationPolicy的=所有

我如何可以加載所有的州一次?使用creationpolicy或anyther的方式?

在TabNavigator中,creationpolicy =全部解決了這個問題,但是當狀態很多時如何解決這個問題?

由於

回答

1

這並不適用於柔性4.6工作,因爲你收到棄用錯誤消息。似乎mxml編譯器不會識別任何嘗試強制加載所有狀態組件的形式。對此,一種解決方法是在創建時手動將狀態切換爲所有正在使用的狀態,例如:currentState =「Edit」; currentState =「記錄」; currentState =「默認」;注意你甚至不能使用字符串常量中的每個循環,你必須使用內聯字符串文字,以便mxml編譯器能夠接受它們。

這似乎更加簡潔另一個解決方案是如下初始化您的組件:

裁判:http://compacted.wordpress.com/2009/08/14/unit-testing-flex-states/#comments

public static function initializeStates(component:UIComponent):void { 
    for each (var state:mx.states.State in component.states) { 
    for each (var override:IOverride in state.overrides) { 
     override.initialize(); 
    } 
    } 
}