AIR / Flash Fullscreen across multiple monitors as one window?

3

We have 4 monitors arranged 2 x 2. Are there any ways to enable the new release of AIR to expand across all monitors in one window?

Alternatively is there any software that can trick it the display driver to show only one large monitor?

davivid

Posted 2011-08-23T14:24:34.523

Reputation: 223

What happens if you resize the main window to the total resolution of the 2x2 grid and position it in the top left corner of the top left monitor? – None – 2011-08-23T14:29:18.177

unfortunately we don't have multiple monitors here at the moment, I'm tasked with ordering in, once we know what might work. – davivid – 2011-08-23T14:33:08.757

Then I'll be lazy too and answer: yes, it's probably possible. (Come on, you just have to plug in an additional monitor and try it) – None – 2011-08-23T14:41:40.913

haha - seriously we just have single hi res monitors in the office – davivid – 2011-08-23T14:48:17.380

No spares, really? If your boss would like to pay me to do your research for you, I'll be glad to help. – None – 2011-08-23T15:09:07.257

Answers

1

Check the documentation for flash.display.Screen.

Once you figure out how big it should be, you should be able to set its position and size using the bounds property off the flash.display.NativeWindow class.

Update:

So here at work I have two monitors, so I threw together a quick test AIR app:

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;
        }
    }
}

You can see it loops through the available screens. It also creates a new rectangle that is a union of the composite screens. Then sets nativeWindow.bounds to that union.

The output of the app is this:

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

One thing to consider is this doesn't take into account the taskbar or anything else, and if your screens are different sizes, like mine are, the resulting rectangle will be larger than your actual screens. But this should at least give you a place to start.

So, to answer your question: Yes. :)

32bitkid

Posted 2011-08-23T14:24:34.523

Reputation:

Cool, is this something you have experienced working? I know how big it should be 3840 x 2160 (4 x HD)... just cant test before ordering. Cant even try on a dual monitor set up at the mo. – davivid – 2011-08-23T14:46:49.157

awesome cheers! I really need to push a for a room of spares - so we can actually R&D properly! – davivid – 2011-08-23T15:20:28.673

0

There is also a much simpler way to accomplish this - just set the stage to the size required, and in application.xml set <systemChrome>none</systemChrome>

davivid

Posted 2011-08-23T14:24:34.523

Reputation: 223