2009-11-04 50 views
1

我在Adobe Flex中遇到了一个非常奇怪的问题,我不知道如何解决它。我有一个弹出框,在我的主应用程序启动之前在creationComplete上调用。弹出窗口只需要一个电子邮件地址,然后启用该应用程序在标签组件中显示电子邮件地址。在Flex中,如何防止我的变量在设置后失去状态?

但是,当我尝试从应用程序中的名为UserID.text的标签组件中访问电子邮件地址时,它始终为空,即使它在标签框中可视化显示...似乎它以某种方式失去状态...所以我可以如何保持它从失去状态?我需要在应用程序的整个使用过程中访问标签或某个变量,我尝试的所有内容总是以空变量结束?

,设置标签应用的主要部分是在这里:

<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 2009-11-04 02:23:38

回答

1

将id作为Bindable变量存储在应用程序中,而不是直接设置文本输入。

[Bindable] 
private var logonId:String; 

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

<mx:TextInput text="{logonId}" />