| Package | flash.display | 
| Class | public final class Screen | 
| Inheritance | Screen    EventDispatcher   Object | 
| Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
Screens are independent desktop areas within a possibly larger "virtual desktop." The origin of the virtual desktop is the top-left corner of the operating-system-designated main screen. Thus, the coordinates for the bounds of an individual display screen may be negative. There may also be areas of the virtual desktop that are not within any of the display screens.
The Screen class includes static class members for accessing the available screen objects and instance members for accessing the properties of an individual screen. Screen information should not be cached since it can be changed by a user at any time.
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.
You cannot instantiate the Screen class directly. Calls to 
	 the new Screen() constructor throw an 
	 ArgumentError exception.
| Property | Defined By | ||
|---|---|---|---|
[read-only] 
		 The bounds of this screen.  | Screen | ||
[read-only] 
		 The color depth of this screen (expressed in number of bits).  | Screen | ||
![]()  | constructor : Object 
	 A reference to the class object or constructor function for a given object instance.  | Object | |
[static] [read-only] 
		 The primary display.  | Screen | ||
![]()  | prototype : Object [static] 
	 A reference to the prototype object of a class or function object.  | Object | |
[static] [read-only] 
		 The array of the currently available screens.  | Screen | ||
[read-only] 
		 The bounds of the area on this screen in which windows can be visible.  | Screen | ||
| Method | Defined By | ||
|---|---|---|---|
![]()  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
	Registers an event listener object with an EventDispatcher object so that the listener 
	receives notification of an event.  | EventDispatcher | |
![]()  | 
	Dispatches an event into the event flow.  | EventDispatcher | |
[static] 
		 Returns the (possibly empty) set of screens that intersect 
		 the provided rectangle.  | Screen | ||
![]()  | 
	Checks whether the EventDispatcher object has any listeners registered for a specific type 
	of event.  | EventDispatcher | |
![]()  | 
	 Indicates whether an object has a specified property defined.  | Object | |
![]()  | 
	 Indicates whether an instance of the Object class is in the prototype chain of the object specified 
	 as the parameter.  | Object | |
![]()  | 
	 Indicates whether the specified property exists and is enumerable.  | Object | |
![]()  | 
	Removes a listener from the EventDispatcher object.  | EventDispatcher | |
![]()  | 
     Sets the availability of a dynamic property for loop operations.  | Object | |
![]()  | 
	 Returns the string representation of this object, formatted according to locale-specific conventions.  | Object | |
![]()  | 
	 Returns the string representation of the specified object.  | Object | |
![]()  | 
	 Returns the primitive value of the specified object.  | Object | |
![]()  | 
	Checks whether an event listener is registered with this EventDispatcher object or any of 
	its ancestors for the specified event type.  | EventDispatcher | |
| property | 
bounds:Rectangle  [read-only] | Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
The bounds of this screen.
The screen location is relative to the virtual desktop.
    public function get bounds():Rectangleimport flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
| property | 
colorDepth:int  [read-only] | Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
The color depth of this screen (expressed in number of bits).
    public function get colorDepth():intvar mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth;
| property | 
mainScreen:Screen  [read-only] | Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
The primary display.
    public static function get mainScreen():Screenvar primaryScreen:Screen = Screen.mainScreen;
| property | 
screens:Array  [read-only] | Language Version: | ActionScript 3. | 
| Runtime Versions: | AIR 1.0 | 
The array of the currently available screens.
Modifying the returned array has no effect on the available screens.
    public static function get screens():Arrayvar screenArray:Array = Screen.screens;
| property | 
visibleBounds:Rectangle  [read-only] | Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
The bounds of the area on this screen in which windows can be visible.
The visibleBounds of a screen excludes the task bar 
		 (and other docked desk bars) on Windows, and excludes the 
		 menu bar and, depending on system settings, the dock on Mac OS X.
		 On some Linux configurations, it is not possible to determine the visible bounds.
		 In these cases, the visibleBounds property returns the same
		 value as the screenBounds property.
    public function get visibleBounds():Rectangleimport flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
| () | method | 
 public static function getScreensForRectangle(rect:Rectangle):Array| Language Version: | ActionScript 3.0 | 
| Runtime Versions: | AIR 1.0 | 
Returns the (possibly empty) set of screens that intersect the provided rectangle.
Parameters
rect:Rectangle — A rectangle with coordinates relative to the origin of
		 the virtual desktop, which is the top-left corner of the primary
		 screen.
		 
		  | 
Array — An array of Screen objects containing the screens that contain any
 		 part of the area defined by the rect parameter.
		 
		  | 
import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect);
getScreensForRectangle()
  to get the Screen object for the screen upon which the window is currently
  displayed.Note, this class is intended to be used as the root class of an AIR application
 with the settings SystemChrome="none" and 
 transparent="true". To use this class in a window with system
 chrome, you must take the chrome thickness and the minimum width of
 the window into account when calculating window location and size.
package
{
    import flash.display.Screen;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.KeyboardEvent;
    import flash.geom.Rectangle;
    import flash.ui.Keyboard;
    public class DockingWindow extends Sprite
    {
        private const dockedWidth:uint = 80;
        private const dockedHeight:uint = 80;
        
        public function DockingWindow():void{
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey);
            dockLeft();
        }
        
        private function onKey(event:KeyboardEvent):void{
            switch(event.keyCode){
                case Keyboard.LEFT :
                    dockLeft();
                    break;
                case Keyboard.RIGHT :
                    dockRight();
                    break;
                case Keyboard.UP :
                    dockTop();
                    break;
                case Keyboard.DOWN :
                    dockBottom();
                    break;
                case Keyboard.SPACE :
                    stage.nativeWindow.close();
            }    
        }
        
        public function dockLeft():void{
            var screen:Screen = getCurrentScreen();
            stage.nativeWindow.x = screen.visibleBounds.left;
            stage.nativeWindow.y = screen.visibleBounds.top;
            stage.nativeWindow.height = screen.visibleBounds.height;
            stage.stageWidth = dockedWidth;
            drawContent();
        }
        
        public function dockRight():void{
            var screen:Screen = getCurrentScreen();
            stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth;            
            stage.nativeWindow.y = screen.visibleBounds.top;
            stage.stageWidth = dockedWidth;
            stage.nativeWindow.height = screen.visibleBounds.height;
            drawContent();
        }
        
        public function dockTop():void{
            var screen:Screen = getCurrentScreen();
            stage.nativeWindow.x = screen.visibleBounds.left;
            stage.nativeWindow.y = screen.visibleBounds.top;
            stage.nativeWindow.width = screen.visibleBounds.width;
            stage.stageHeight = dockedHeight;
            drawContent();
        }
        
        public function dockBottom():void{
            var screen:Screen = getCurrentScreen();
            stage.nativeWindow.x = screen.visibleBounds.left;
            stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight;
            stage.nativeWindow.width = screen.visibleBounds.width;
            stage.stageHeight = dockedHeight;    
            drawContent();        
        }
        
        private function getCurrentScreen():Screen{
            return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0];
        }
        
        private function drawContent():void{
            const size:int = 60;
            const pad:int = 10;
            var numHSquares:int = Math.floor(stage.stageWidth/(size + pad));
            var numVSquares:int = Math.floor(stage.stageHeight/(size + pad));
            with (graphics){
                clear();
                lineStyle(1);
                beginFill(0x3462d5,.7);
                for(var i:int = 0; i < numHSquares; i++){
                    for(var j:int = 0; j < numVSquares; j++){                
                            drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size);
                    }
                }
                endFill();
            }
        }
    }
}