0

私はフレックスでデスクトップエアアプリケーションを開発しています。2つの mxml があります (1 つの mxml は windowedapplication で、もう 1 つは mxml グループにあります)login.mxmlある mxml ファイル ( ) から別の ( )に移動したいと考えていますnextpage.mxml

どうすればこれを達成できますか?

ログイン.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>

次のページ.mxml:

<?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:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label text="Login Success/></s:Group>
4

1 に答える 1

0

アプリケーションの状態のコーディネーターとしてメイン アプリケーションを実装するとよいでしょう。

この場合、子として Login および NextPage コンポーネントを持つ ViewStack コンポーネントを使用できます。コンポーネントは、イベントによってアプリケーションと通信します。現在のイベントに応じて、状態が変更されます。

//メインアプリ

<?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>

//次のページ

<?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>
于 2013-06-25T16:10:55.790 に答える