AIR / Flash全屏跨多个显示器作为一个窗口?


3

我们有4个监视器,排列为2 x 2.有没有办法让新版AIR在一个窗口中扩展到所有监视器?

或者是否有任何软件可以欺骗显示驱动程序只显示一个大显示器?


如果您将主窗口调整为2x2网格的总分辨率并将其放置在左上方监视器的左上角,会发生什么?

不幸的是,我们目前没有多台显示器,一旦我们知道什么可行,我的任务就是订购。
davivid 2011年

然后我也会懒得回答:是的,这可能是可能的。(来吧,你只需要插一个额外的显示器并尝试一下)

哈哈 - 严重的是,我们只是在办公室里有一个单独的高分辨率监视器
davivid 2011年

没有备件,真的吗?如果你的老板愿意付钱让我为你做研究,我很乐意提供帮助。

Answers:


1

查看flash.display.Screen的文档。

一旦你弄清楚应该有多大,你应该能够使用flash.display.NativeWindow类中的bounds属性来设置它的位置和大小。

更新:

所以在这里工作我有两个显示器,所以我把一个快速测试AIR应用程序拼凑在一起:

package
{
    import flash.display.NativeWindow;
    import flash.display.Screen;
    import flash.display.Sprite;
    import flash.geom.Rectangle;

    public class MultimonitorTest extends Sprite
    {
        public function MultimonitorTest()
        {
            var screens:Array = Screen.screens;
            var rect:Rectangle = new Rectangle();

            for(var i:uint;i<screens.length;i++) {
                trace(Screen(screens[i]).bounds);
                rect = rect.union(screens[i].bounds);
            }
            trace(rect);
            this.stage.nativeWindow.bounds = rect;
        }
    }
}

你可以看到它循环通过可用的屏幕。它还会创建一个新的矩形,它是复合屏幕的并集。然后设置nativeWindow.bounds为该联合。

该应用程序的输出是这样的:

(x=0, y=0, w=1440, h=900)
(x=1440, y=0, w=1920, h=1080)
(x=0, y=0, w=3360, h=1080)

有一点需要考虑的是,这没有考虑任务栏或其他任何事情,如果你的屏幕尺寸不同,就像我的一样,生成的矩形将比你的实际屏幕大。但至少应该给你一个开始的地方。

所以,回答你的问题:是的。:)


很酷,这是你经历过的工作吗?我知道它应该是多大的3840 x 2160(4 x HD)...在订购前只是不能测试。甚至不能尝试在mo设置双显示器。
davivid 2011年

真棒!我真的需要推出一个备用空间 - 所以我们实际上可以正常研发!
davivid 2011年

0

还有一种更简单的方法可以实现这一点 - 只需将阶段设置为所需的大小,并在application.xml中设置 <systemChrome>none</systemChrome>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.