美好的一天。
我有一个Flex RIA应用程序,并且在应用程序标记中,当按下从另一个.mxml文件调用TitleWindow时会有一个按钮,并设置
application.enable = false
这样用户就无法使用应用程序中的任何组件,仍然可以使用TitleWindow中的组件。
问题所在。当TitleWindow关闭时,我希望他将应用程序恢复到
application.enable = true
再次启用应用程序。但我无法从TitleWindow .mxml
中调用该代码我该怎么做?..
这是来源:
Loja.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="585" height="450" xmlns:ns1="com.*">
<mx:Style source="theme/simplicitygray.css" />
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private var clientid = 0;
public function openWindow() : void
{
if (clientid == 0)
{
PopUpManager.createPopUp(this,Login,false);
application.enabled = false;
} else {
PopUpManager.createPopUp(this,Conta,false);
application.enabled = false;
}
}
]]>
</mx:Script>
<mx:Panel x="10" y="40" width="565" height="400" layout="absolute">
</mx:Panel>
<mx:MenuBar x="10" y="10" width="565" height="22"></mx:MenuBar>
<mx:Button x="508" y="10" label="Aceder" click="openWindow();"/>
</mx:Application>
其中一个标题窗口。一旦他们是相同的。
Login.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="350" height="200" creationComplete="centerWindow()" showCloseButton="true" close="closeWindow()" title="Login">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
public function centerWindow():void
{
PopUpManager.centerPopUp(this);
}
public function closeWindow():void
{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
</mx:TitleWindow>
任何帮助都是非常好的。感谢。
答案 0 :(得分:2)
application
是Application
类的静态属性,可以从TitleWindow
public function closeWindow():void
{
PopUpManager.removePopUp(this);
Application.application.enabled = true;
}
BTW,还有另一种更简单的方法来实现以下目标:
这样,用户无法使用应用程序中的任何组件,仍然可以使用TitleWindow中的组件。
那就是使用模态弹出窗口。将createPopUp
的第三个参数设置为true
,就是这样 - 您不必手动启用/禁用应用程序:flex将负责处理它。
PopUpManager.createPopUp(this,Login, true);
一旦拨打removePopUp
,应用程序将自动生效。
答案 1 :(得分:1)
您可以使用自定义事件来启用此功能,如here所述。
基本上,您在要调用的类中设置自定义事件,然后创建在使用事件时运行的函数。这样你的'Loja'就会知道“登录”何时完成。