Identifying Multiple Screens with Adobe AIR
Wednesday, May 7th, 2008While working on a presentation about Native Windows & Adobe AIR I ran into the Screen class. The screen object provides information about the display screens available to an application allowing you to position applications/windows on different screens. I say screens and not monitors because of a little caveat that the livedocs have in them:
Note that there is not necessarily a one-to-one correspondance between screens and the physical monitors attached to a computer. For example, two monitors may display the same screen.
I thought I'd have a little fun to get my code fingers back after a week in Cabo San Lucas, and create a little AIR app that identifies each screen. The basics are:
- Identify the Screens - I knew I had 2 screens, so that was easy. The screens property is an array of Screen objects, so you can work with as many as the user has.
- Create something to identify the windows - I used transparent windows with a label to make things simple.
- Then position the new windows on the screens.
-
private var _screenOne:Screen;
-
private var _screenTwo:Screen;
-
-
private function _identScreens( p_event:MouseEvent ):void
-
{
-
// I know I have 2 screens so I'll just grab those
-
_screenOne = Screen.screens[0];
-
_screenTwo = Screen.screens[1];
-
-
// Now lets identify the screens
-
var identOne:IdentWindow = new IdentWindow();
-
identOne.title = "Screen One";
-
identOne.screenLabel = "1";
-
-
// open the irst window and set its position on the first screen
-
identOne.open( true );
-
identOne.nativeWindow.x = ( _screenOne.bounds.width / 2 ) - ( identOne.width / 2 );
-
identOne.nativeWindow.y = ( _screenOne.bounds.height / 2 ) - ( identOne.height / 2 );
-
-
var identTwo:IdentWindow = new IdentWindow();
-
identTwo.title = "Screen Two"
-
identTwo.screenLabel = "2";
-
-
// open the second window and set its position on the second screen
-
identTwo.open( true );
-
identTwo.nativeWindow.x = ( _screenTwo.bounds.right - ( _screenTwo.bounds.width / 2 ) ) - ( identTwo.width / 2 );
-
identTwo.nativeWindow.y = ( _screenTwo.bounds.bottom / 2 ) - ( identTwo.height / 2 );
-
}
Very straight forward and simple, but a fun little exercise.
You can download and install the app (with source) using the badge below:
Or, download the zip'ed flex archive:
|
|
download: Identify Screen Sample (4.59KB) added: 07/05/2008 clicks: 142 description: |
