繁体   English   中英

flex 4 air关闭第二个窗口

[英]flex 4 air close second window

我有一个空气应用程序,当单击该应用程序时有一个按钮,它会打开一个新的spark.window组件。 窗口中是一个视频播放器。 新的secondWindow.open()方法可以正常工作。 我似乎无法做的是在父窗口关闭时关闭第二个窗口。

我有这个:

//parent window
<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"
                   minWidth="733" minHeight="653" creationComplete="main()" currentState="loginForm" applicationDeactivate="windowedapplication1_applicationDeactivateHandler(event)">

//close second window
        protected function windowedapplication1_applicationDeactivateHandler(event:Event):void{
        NativeApplication.nativeApplication.openedWindows[0].close();
        }
</s:WindowedApplication>

//second window
<s:Window name="secondWindow" xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="450" minHeight="323" windowComplete="init()">
//video player code is here
</s:Window>

主要应用:

<?xml version="1.0"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       width="100%" height="100%"
                       creationComplete="_creationComplete()"
                       closing="_closingHandler(event)">

    <fx:Script><![CDATA[
        private var _testWindow:TestWindow;

        private function _creationComplete():void
        {
            butt.addEventListener(MouseEvent.CLICK, _butt_clickHandler);
        }

        private function _butt_clickHandler(event:MouseEvent):void
        {
            if(_testWindow)
            {
                return;
            }
            _testWindow = new TestWindow();
            _testWindow.open();
        }

        private function _closingHandler(event:Event):void
        {
            var openedWindows:Array = nativeApplication.openedWindows;
            var i:uint;
            var count:uint = openedWindows.length;
            for(i; i < count; i++)
            {
                openedWindows[i].close();
            }
        }
        ]]></fx:Script>

    <s:Button id="butt" label="Open"/>
</s:WindowedApplication>

子窗口(TestWindow.mxml):

<?xml version="1.0"?>
<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"
          xmlns:s="library://ns.adobe.com/flex/spark"
          width="300" height="300">
    <s:Label text="Test Window" />
</s:Window>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM