NativeMenu没有出现在Windows上

时间:2014-12-06 22:37:16

标签: actionscript-3 flex air flex4

我觉得这个问题很愚蠢,但我已经花了2个多小时试图解决它而没有任何快乐。

我只是想在Windows上显示一些原生菜单。我编写了自己的代码并且可以在OSX上运行,但是窗口上没有菜单,所以我搜索了一些示例,广告已经测试了六个,包括this one from Adobe.

我正在做的事没有什么特别之处。 NativeWindow系统chrome是标准的,等等。我正在使用Windows 7运行VMWare的OSX上测试它 - 但大多数事情似乎都能正常工作。我在跟踪声明中指出菜单是在Windows上创建的。

有人知道什么可能阻止在Flex WindowAplication中在Windows上创建菜单吗?

        private function initMenu():void
        {
            if( NativeWindow.supportsMenu){
                stage.nativeWindow.menu = createAppMenu();
            } else if( NativeApplication.supportsMenu ){
             NativeApplication.nativeApplication.menu = createAppMenu();
            }
        }


        private function createAppMenu():NativeMenu
        {
            var myMenu:NativeMenu = new NativeMenu();

            var nameMenu:NativeMenuItem = myMenu.addItem( new NativeMenuItem( "Window World" ) );
            var aboutMenu:NativeMenu = new NativeMenu();
            var aboutMenuItem:NativeMenuItem = aboutMenu.addItem( new NativeMenuItem( "About" ) );
            nameMenu.submenu = aboutMenu;

            var fileMenu:NativeMenuItem = myMenu.addItem( new NativeMenuItem( "File" ) );
            fileMenu.submenu = buildFileMenu();

            return myMenu;
        }

        private function buildFileMenu():NativeMenu
        {
            var fileMenu:NativeMenu = new NativeMenu();
            var closeAppMenu:NativeMenuItem = fileMenu.addItem( new NativeMenuItem( "Exit" ));
            closeAppMenu.addEventListener( Event.SELECT , closeApp );
            return fileMenu;
        }

1 个答案:

答案 0 :(得分:0)

整个Flex的事情可能很烦人......

菜单未显示的原因是因为我正在使用creationComplete事件。切换到windowComplete是正确的事件。

<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"
                       width="1024" height="768" 
                       showStatusBar="false"
                       windowComplete="initMenu(this)" >