在Mac OS X(Mavericks)上的Adobe AIR中的两台显示器上显示两个全屏窗口

时间:2014-04-10 18:52:50

标签: actionscript-3 air osx-mavericks

我在Mac OS X(Mavericks)上。使用Adobe AIR,我想在我的两个显示器(内置笔记本电脑视网膜显示器和外部hdmi显示器)上显示单独的全屏窗口。

我可以在主显示器上看到一个全屏窗口,在辅助显示器上看到一个几乎全屏的窗口。当我说“差不多”时,我的意思是窗口是全屏的,除了菜单栏顶部的空间(桌面的背景图像显示):

Second monitor

起初我认为这是AIR的问题,但我开始认为它可能是OS X限制。如果我与主屏幕进行交互,一切正常。但是,如果我单击辅助屏幕,则会出现两个屏幕上的菜单栏。就好像只有第一个屏幕才真正处于“全屏模式”。似乎第二个被视为最大化的无铬窗口。

你们知道发生了什么吗?这是我正在使用的代码:

package {

    import flash.display.NativeWindow;
    import flash.display.NativeWindowInitOptions;
    import flash.display.NativeWindowSystemChrome;
    import flash.display.Screen;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageDisplayState;
    import flash.display.StageScaleMode;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;

    public class TwoFullscreenNativeWindowsInTwoMonitors extends Sprite {

        public var secondWindow:NativeWindow;

        public function TwoFullscreenNativeWindowsInTwoMonitors() {

            // Make primary (default) window's stage go fullscreen
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
            stage.color = 0xC02A2A; // red

            // Create fullscreen window on second monitor (check if available first)
            if (Screen.screens[1]) {

                // Window
                var nwio:NativeWindowInitOptions = new NativeWindowInitOptions();
                nwio.systemChrome = NativeWindowSystemChrome.NONE;
                secondWindow = new NativeWindow(nwio);
                secondWindow.bounds = (Screen.screens[1] as Screen).bounds;
                secondWindow.activate();

                // Stage
                secondWindow.stage.align = StageAlign.TOP_LEFT;
                secondWindow.stage.scaleMode = StageScaleMode.NO_SCALE;
                secondWindow.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
                secondWindow.stage.color = 0x387D19; // green

            }

        }

    }

}

更新1

我设法通过使用丑陋的黑客来填充菜单栏空间......也就是说,等待一秒然后重新设置窗口高度。但是,第二个窗口仍然不是“全屏”。如果我点击它,菜单栏会出现......

通过勾选OS X Mission Control偏好设置面板中的“显示具有单独的空格”复选框,可以获得类似的结果

更新2

自2011年以来,这似乎是Adobe已知的long standing bug ...

0 个答案:

没有答案