Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

migrated from stackoverflow.com Aug 25 '11 at 0:53

This question came from our site for professional and enthusiast programmers.

    
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? –  RIAstar Aug 23 '11 at 14:29
    
unfortunately we don't have multiple monitors here at the moment, I'm tasked with ordering in, once we know what might work. –  davivid Aug 23 '11 at 14:33
    
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) –  RIAstar Aug 23 '11 at 14:41
    
haha - seriously we just have single hi res monitors in the office –  davivid Aug 23 '11 at 14:48
    
No spares, really? If your boss would like to pay me to do your research for you, I'll be glad to help. –  RIAstar Aug 23 '11 at 15:09

2 Answers 2

up vote 1 down vote accepted

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. :)

share|improve this answer
    
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 Aug 23 '11 at 14:46
    
awesome cheers! I really need to push a for a room of spares - so we can actually R&D properly! –  davivid Aug 23 '11 at 15:20

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>

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.