2009-11-04 3 views
1

어도비 플렉스에서 매우 이상한 문제가 발생했습니다. 어떻게 해결해야할지 모르겠습니다. 주 응용 프로그램을 시작하기 전에 creationComplete에서 호출되는 팝업 상자가 있습니다. 팝업은 이메일 주소를 묻기 만하면 응용 프로그램에서 레이블 구성 요소에 전자 메일 주소를 표시합니다.Flex에서 변수를 설정 한 후 변수가 상태를 잃지 않게하려면 어떻게해야합니까?

그러나 응용 프로그램에서 UserID.text라는 레이블 구성 요소의 전자 메일 주소에 액세스하려고하면 레이블 상자에 시각적으로 표시되어 있어도 항상 null입니다 ... 어떻게 든 상태가 사라지는 것 같습니다 ... 그래서 지구에서 나는 잃을 수있는 상태에서 그것을 어떻게 유지할 수 있습니까? 응용 프로그램의 사용을 통해 레이블이나 일부 변수에 액세스해야하며 항상 null 변수로 끝내려고합니다. ???

레이블을 설정하는 응용 프로그램의 주요 부분은 여기에 있습니다 :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:controls="com.iwobanas.controls.*" xmlns:local="*" creationComplete="showWindow(true)"> 
private function showWindow(modal:Boolean):void 
{ 
    var logonWindow:LogonWindow = new LogonWindow(); 
    logonWindow.addEventListener("logon", logonHandler); 
    PopUpManager.addPopUp(logonWindow, this, modal); 
    PopUpManager.centerPopUp(logonWindow); 
} 
public function logonHandler(event:LogonEvent):void 
{ 
    UserID.text=event.userId; 

} 

어떤 도움을 크게 감상 할 수있다.

+0

최소한의 버전의 LogonWindow를 게시하여 예제를 컴파일 가능하게 만들고 동작을 설명하기에 충분합니까? – outis

답변

1

직접 텍스트 입력을 설정하는 대신 응용 프로그램에 ID를 Bindable 변수로 저장하십시오.

[Bindable] 
private var logonId:String; 

public function logonHandler(event:LogonEvent):void 
{ 
    logonId=event.userId; 
} 

<mx:TextInput text="{logonId}" /> 
관련 문제