2009-06-24 3 views
0

나는 현재 어떤 상태인지 알 필요가있다. 다음과 같이 가정 해 봅시다.플렉스 국가 질문

<mx:states> 
     <mx:State name="state1"> 

      </mx:AddChild> 
     </mx:State> 

     <mx:State name="state2"> 

      </mx:AddChild> 
     </mx:State> 

</mx:states> 

응용 프로그램에 로그인하면 state1이 표시되지만 페이지가 새로 고침되면 다시 사라집니다.

현재 세션 값을 갖고 있는데, 세션이 참인지 확인한 다음 현재 상태를 유지하거나 기본 상태로 돌아 가면됩니다.

답변

1

현재 상태는 구성 요소의 currentState 속성에서 확인할 수 있습니다. flex 3에서 기본 상태는 빈 문자열입니다. 플래시 페이지를 새로 고침하면 (플래시 응용 프로그램을 사용할 때 누가이를 수행합니까?) 전체 플래시 응용 프로그램을 실제로 다시로드합니다. 즉, 모든 구성 요소가 재생성됩니다. 따라서 세션을 확인한 다음 적절하게 구성 요소의 currentState를 지정해야합니다.

예제 코드를 기반으로 상태 2를 볼 경우 상태를 정의하는 구성 요소의 currentState는 이제 "state2"가됩니다. 이것은 두 번째 상태의 이름으로 지정한 값입니다. 처음 상태로 설정하려면

component.currentState = "state1"; 

을 첫 번째 상태의 이름으로 사용하면됩니다. (초기) 상태를 기본값으로 이동하려면, 당신이 할 것 :

component.currentState = ""; 

당신이 제 2 상태에있어 확인하려면, 당신은

if (component.currentState == "state2") 
    doSomething(); 

두 번째 상태 이름을 지정해야하는 경우 "secondstate"할 것 대신 "상태 2", 당신은 사용하는 것 : 내가 플렉스 이해 4 주에 관련된 몇 가지 변경 사항을 소개하기 때문에

if (component.currentState == "secondstate") 
     doSomething(); 

는 적어도 즉, 플렉스 3의 방법이다. 위의 동의에

+0

내가 2 번 상태라고 가정 해 봅시다. 이것을 어떻게 알 수 있습니까? selectedIndex 나 o와 같은 것을 통해이 정보를 얻을 수 있습니까? ther ... 좀 더 나를 도울 수 – Kevin

+0

내 대답에 유스 케이스 코드 샘플을 추가했습니다. –

0

, 여기에 몇 가지 코드 샘플은 다음과 같습니다 디버깅하는 경우, 단순히 trace()를 사용

private function checkCurrentState():void 
{ 
    alert(this.currentState); 
} 

또는 : 구성 요소에서

, 당신은 this.currentState을 참조 할 필요하거나 currentState 성명 :

trace(this.currentState);