我有不同的狀態的部件,當我在另一個國家分配一定的價值,我得到一個運行時錯誤[空]Flex 3的:美國:creationPolicy的=所有
我如何可以加載所有的州一次?使用creationpolicy或anyther的方式?
在TabNavigator中,creationpolicy =全部解決了這個問題,但是當狀態很多時如何解決這個問題?
由於
我有不同的狀態的部件,當我在另一個國家分配一定的價值,我得到一個運行時錯誤[空]Flex 3的:美國:creationPolicy的=所有
我如何可以加載所有的州一次?使用creationpolicy或anyther的方式?
在TabNavigator中,creationpolicy =全部解決了這個問題,但是當狀態很多時如何解決這個問題?
由於
所述的AddChild元件具有creationPolicy屬性,默認爲「自動」,但接受「全部」或「無」爲好。將其設置爲「所有」應該爲你工作:
http://livedocs.adobe.com/flex/3/langref/mx/states/AddChild.html#creationPolicy
這並不適用於柔性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();
}
}
}