2009-11-10 1 views
0

, 난 런타임 오류 [널]플렉스 3 : 미국 : creationPolicy가이 = 내가 다른 주에서 몇 가지 값을 할당 할 때 내가, 다른 상태와 구성 요소가 모든

어떻게 모든 국가가 한 번에로드 할 수 있습니다를 얻을? creationpolicy 또는 다른 방법으로 사용 하시겠습니까?

TabNavigator에서 creationpolicy = all이 문제를 해결하지만 상태가 많은 경우이 문제를 해결하는 방법은 무엇입니까?

감사

답변

1

이 플렉스 4.6이 작동하지 않습니다 당신이 중단 오류 메시지가 나타날 수 있기 때문이다. mxml 컴파일러가 모든 상태의 구성 요소를 강제로드하려고 시도하는 형식을 인식하지 못하는 것 같습니다. 이 문제를 해결하는 한 가지 방법은 생성시 수동으로 상태를 사용중인 모든 상태로 전환하는 것입니다. currentState = "Edit"; currentState = "기록"; currentState = "기본값"; 문자열 상수가있는 각 루프에 대해 a를 사용할 수도 없으므로 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(); 
    } 
    } 
} 
관련 문제