Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 windowedapplication flex中的导航_Actionscript 3_Apache Flex_Air_Desktop Application - Fatal编程技术网

Actionscript 3 windowedapplication flex中的导航

Actionscript 3 windowedapplication flex中的导航,actionscript-3,apache-flex,air,desktop-application,Actionscript 3,Apache Flex,Air,Desktop Application,我正在用flex开发一个桌面air应用程序。我有2个mxml(一个mxml是windowedapplication,另一个在mxml组中)。我想从一个mxml文件(login.mxml)导航到另一个文件(nextpage.mxml) 我怎样才能做到这一点 login.mxml: <?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"

我正在用flex开发一个桌面air应用程序。我有2个mxml(一个mxml是windowedapplication,另一个在mxml组中)。我想从一个mxml文件(
login.mxml
)导航到另一个文件(
nextpage.mxml

我怎样才能做到这一点

login.mxml:

<?xml version="1.0" encoding="utf-8"?><s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>`enter code here`
<![CDATA[
public function onLogin()
{
// What code should i use to navigate to another mxml page i.e nextpage.mxml
}
]]>
</fx:Script><s:Button id="btn" name="Login" click="onLogin()"/</s:WindowedApplication>

`在这里输入代码`

最好将主应用程序作为应用程序状态的协调器来实现

在这种情况下,您可以使用ViewStack组件,该组件将Login和NextPage组件作为子组件。组件通过事件与应用程序通信。根据当前事件,状态会发生更改

//主应用程序

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fld01="com.fld01.*">

<mx:ViewStack id="vsMain">
    <s:NavigatorContent id="ncLogin">
        <fld01:Login id="grLogin" evtLogin="{vsMain.selectedChild = ncNextPage}"/>
    </s:NavigatorContent>

    <s:NavigatorContent id="ncNextPage">
        <fld01:Nextpage id="grNextPage" evtLogout="{vsMain.selectedChild = ncLogin}"/>
    </s:NavigatorContent>
</mx:ViewStack>

</s:WindowedApplication>

//登录

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">

<fx:Metadata>
    [Event(name="evtLogin", type="flash.events.Event")]
</fx:Metadata>

<fx:Script>
    <![CDATA[
        public function onLogin():void
        {
            this.dispatchEvent(new Event("evtLogin"));  
        }
    ]]>
</fx:Script>

<s:Button id="btn" x="40" y="50" label="Login" click="onLogin()"/>
</s:Group>

[事件(name=“evtLogin”,type=“flash.events.Event”)]
//下一页

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" 
     width="400" height="300">

<fx:Metadata>
    [Event(name="evtLogout", type="flash.events.Event")]
</fx:Metadata>

<fx:Script>
    <![CDATA[
        public function onLogout():void
        {
            this.dispatchEvent(new Event("evtLogout")); 
        }
    ]]>
</fx:Script>

<s:Label x="40" y="50" text="Login Success"/>

<s:Button id="btn" x="40" y="80" label="Logout" click="onLogout()"/>

</s:Group>

[事件(name=“evtLogout”,type=“flash.events.Event”)]

非常感谢您为我解决了这个问题!一个小小的变化是,我没有使用“fld01:Login”,而是使用了“local:Login”,然后只有它对我有效。
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" 
     width="400" height="300">

<fx:Metadata>
    [Event(name="evtLogout", type="flash.events.Event")]
</fx:Metadata>

<fx:Script>
    <![CDATA[
        public function onLogout():void
        {
            this.dispatchEvent(new Event("evtLogout")); 
        }
    ]]>
</fx:Script>

<s:Label x="40" y="50" text="Login Success"/>

<s:Button id="btn" x="40" y="80" label="Logout" click="onLogout()"/>

</s:Group>