我有一个Flex RIA应用程序,在应用程序标记中有一个按钮,当它被按下时,它调用另一个.mxml文件中的标题窗口,并设置
application.enable = false
这样,用户就不能使用应用程序中的任何组件,而仍然可以使用标题窗口中的组件。
问题是,当标题窗口关闭时,我希望它将应用程序恢复到
application.enable = true
这再次启用了该应用程序。但我不能从标题窗口.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>
2条答案
按热度按时间0s0u357o1#
application
是Application
类的静态属性,可以从TitleWindow
顺便说一句,还有另一种更容易的方法来实现以下目标:
这样,用户就不能使用应用程序中的任何组件,而仍然可以使用标题窗口中的组件。
这就是使用模式弹出窗口。将
createPopUp
的第三个参数设置为true
,就是这样-您不必手动启用/禁用应用程序:Flex会处理它。一旦调用
removePopUp
,应用程序将自动起作用。vecaoik12#
您可以使用自定义事件来启用此功能,如下所述。
本质上,您在要调用的类中设置一个自定义事件,然后创建一个在使用该事件时运行的函数。这样你的‘Loja’就会知道什么时候‘登录’完成了。