applicationX.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" >
<s:ViewNavigator label="Login" width="100%" height="100%" firstView="views.LoginView" />
<s:ViewNavigator label="Settings" width="100%" height="100%" firstView="views.SettingsView" />
</s:TabbedViewNavigatorApplication>
Settings.mxm(设置视图):
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" >
<s:Label id="myLabel" />
</View>
答案 0 :(得分:1)
设置设置singleton。这意味着,您定义一个指向项本身的静态变量(它只需要一个Settings.mxml实例)
添加
public static var instance:Settings;
设置。 将initializeEventListener添加到设置中,并在函数内设置实例:
instance=this;
您可以通过获取单身人士随时访问“设置”页面,例如:
Settings.instance.myLabel.text="success";
答案 1 :(得分:1)
Settings.mxml:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" >
<fx:Script>
<![CDATA[
private var model:MyModel = MyModel.getInstance();
]]>
</fx:Script>
<s:Label id="myLabel" text="{model.loggedInStatus}" />
</View>
Login.mxml:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" >
<fx:Script>
<![CDATA[
private var model:MyModel = MyModel.getInstance();
private function loginSucceded():void{
model.loggedInStatus="Logged In";
}
]]>
</fx:Script>
</View>
MyModel.as
具有名为.loggedInStatus的属性的Singleton类。你可以查看这个其他答案AS3 singleton implementations,讨论各种单例模式以及为什么我使用我使用的模式。
这是一个非常简单的例子。您不希望使用人类可读的字符串loggedInStatus来确定状态或任何内容。但这是一个示例,说明模型如何工作以及视图如何根据模型的状态显示正确的事物。