| Package | flash.display | 
| Class | public final class Screen | 
| Inheritance | Screen  EventDispatcher  Object | 
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 | ||
|---|---|---|---|
|  bounds : Rectangle [read-only] 
   The bounds of this screen. | Screen | ||
|  colorDepth : int [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 | |
|  mainScreen : Screen [static] [read-only] 
   The primary display. | Screen | ||
|  | prototype : Object [static] 
  A reference to the prototype object of a class or function object. | Object | |
|  screens : Array [static] [read-only] 
   The array of the currently available screens. | Screen | ||
|  visibleBounds : Rectangle [read-only] 
   The bounds of the area on this screen in which windows will 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 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 | |
|  bounds | property | 
bounds:Rectangle  [read-only] The bounds of this screen.
The screen location is relative to the virtual desktop.
    public function get bounds():Rectangle
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
|  colorDepth | property | 
colorDepth:int  [read-only] The color depth of this screen (expressed in number of bits).
    public function get colorDepth():int
var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth;
|  mainScreen | property | 
mainScreen:Screen  [read-only] The primary display.
    public static function get mainScreen():Screen
var primaryScreen:Screen = Screen.mainScreen;
|  screens | property | 
screens:Array  [read-only] The array of the currently available screens.
Modifying the returned array has no effect on the available screens.
    public static function get screens():Array
var screenArray:Array = Screen.screens;
|  visibleBounds | property | 
visibleBounds:Rectangle  [read-only] 
   The bounds of the area on this screen in which windows will be visible.
   
   The visibleBounds of a screen excludes the taskbar 
   (and other docked deskbars) on Windows, and excludes the 
   menu bar and, depending on system settings, the dock on Mac OS X.
      
    public function get visibleBounds():Rectangle
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
|  getScreensForRectangle | () | method | 
public static function getScreensForRectangle(rect:Rectangle):Array
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 therectparameter. | 
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.window.close();
            }    
        }
        
        public function dockLeft():void{
            var screen:Screen = getCurrentScreen();
            stage.window.x = screen.visibleBounds.left;
            stage.window.y = screen.visibleBounds.top;
            stage.window.height = screen.visibleBounds.height;
            stage.stageWidth = dockedWidth;
            drawContent();
        }
        
        public function dockRight():void{
            var screen:Screen = getCurrentScreen();
            stage.window.x = screen.visibleBounds.width - dockedWidth;            
            stage.window.y = screen.visibleBounds.top;
            stage.stageWidth = dockedWidth;
            stage.window.height = screen.visibleBounds.height;
            drawContent();
        }
        
        public function dockTop():void{
            var screen:Screen = getCurrentScreen();
            stage.window.x = screen.visibleBounds.left;
            stage.window.y = screen.visibleBounds.top;
            stage.window.width = screen.visibleBounds.width;
            stage.stageHeight = dockedHeight;
            drawContent();
        }
        
        public function dockBottom():void{
            var screen:Screen = getCurrentScreen();
            stage.window.x = screen.visibleBounds.left;
            stage.window.y = screen.visibleBounds.height - dockedHeight;
            stage.window.width = screen.visibleBounds.width;
            stage.stageHeight = dockedHeight;    
            drawContent();        
        }
        
        private function getCurrentScreen():Screen{
            return Screen.getScreensForRectangle(stage.window.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();
            }
        }
    }
}