новое окно / просмотр mxml flex - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть следующая проблема, как отобразить другой файл mxml в качестве основного вида приложения

Например, допустим, у меня main.mxml отображается как главное окно. Когда я нажимаю кнопку, я хочу отобразить другой mxml файл, скажем, newMain.mxml и закрыть main.mxml

1 Ответ

1 голос
/ 03 декабря 2011

Да, вы можете сделать это с помощью класса NativeWindow в Adobe AIR.

Вы можете создать собственное окно и активировать его.При активации вашего newMain.mxml в другое собственное окно вы можете установить main.mxml на видимое значение false.

А при закрытии вашего newMain.mxml вы можете установить main.mxml на видимое значение true.

Я даю образец кода приложения Flex 4.5.

<?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:Script>
        <![CDATA[

            private var n:NativeWindow;
            private var ni:NativeWindowInitOptions;

            protected function onBtnOpenClick(event:MouseEvent):void
            {
                ni = new NativeWindowInitOptions();
                ni.systemChrome = NativeWindowSystemChrome.STANDARD;
                ni.type = NativeWindowType.NORMAL;
                ni.transparent = false;
                ni.resizable = false;
                ni.minimizable = true;
                ni.maximizable = true;

                n = new NativeWindow(ni);
                n.title = "My Native Window";
                n.addEventListener(Event.CLOSING, onClosingWindowEvent);
                n.activate();

                nativeWindow.visible = false;
            }

            private function onClosingWindowEvent(event:Event):void
            {
                nativeWindow.visible = true;
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Button x="217" y="110" label="Open" click="onBtnOpenClick(event)"/>

</s:WindowedApplication>
...