(AIR만 해당)
패키지flash.display
클래스public final class Screen
상속Screen Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

Screen 클래스는 이 응용 프로그램에 사용 가능한 표시 화면의 정보를 제공합니다.

화면은 가능한 큰 "가상 데스크톱" 내에서 독립적인 데스크톱 영역입니다. 가상 데스크톱의 원점은 운영 체제 지정 기본 화면의 왼쪽 위 모서리입니다. 따라서 각 표시 화면의 경계에 대한 좌표는 음수일 수 있습니다. 표시 화면 내에 없는 가상 데스크톱의 영역도 있을 수 있습니다.

Screen 클래스에는 사용할 수 있는 screen 객체에 액세스하는 데 필요한 정적 클래스 멤버와 개별 화면의 속성에 액세스하는 데 필요한 인스턴스 멤버가 포함됩니다. 화면 정보는 사용자가 언제든지 변경할 수 있으므로 캐시되면 안 됩니다.

화면과 컴퓨터에 연결된 물리적인 모니터 간에 일대일 대응이 필수적이지는 않습니다. 예를 들어 두 개의 모니터가 동일한 화면을 표시할 수도 있습니다.

Screen 클래스는 직접 인스턴스화할 수 없습니다. new Screen() 생성자를 호출하면 ArgumentError 예외가 발생합니다.

예제 보기



Public 속성
 속성다음에 의해 정의됨
  AIR-only bounds : Rectangle
[읽기 전용] 이 화면의 경계입니다.
Screen
  AIR-only colorDepth : int
[읽기 전용] 이 화면의 색상 심도(비트 수)입니다.
Screen
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  AIR-only mainScreen : Screen
[정적] [읽기 전용] 기본 표시입니다.
Screen
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  AIR-only screens : Array
[정적] [읽기 전용] 현재 사용 가능한 화면의 배열입니다.
Screen
  AIR-only visibleBounds : Rectangle
[읽기 전용] 윈도우가 표시될 이 화면에 있는 영역의 경계입니다.
Screen
Public 메서드
 메서드다음에 의해 정의됨
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
  
[정적] 제공된 사각형을 교차하는 화면 집합을 반환합니다(비어 있을 수 있음).
Screen
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 다음에 의해 정의됨
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
속성 정보
AIR-only bounds속성
bounds:Rectangle  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

이 화면의 경계입니다.

화면 위치는 가상 데스크톱에 대해 상대적입니다.



구현
    public function get bounds():Rectangle

예제
다음 예제에서는 화면(이 경우, 기본 표시 화면)의 경계를 가져오는 방법을 보여 줍니다.
import flash.display.Screen;
import flash.geom.Rectangle;

var mainScreen:Screen = Screen.mainScreen;
var screenBounds:Rectangle = mainScreen.bounds;
AIR-only colorDepth속성 
colorDepth:int  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

이 화면의 색상 심도(비트 수)입니다.



구현
    public function get colorDepth():int

예제
다음 예제에서는 화면(이 경우, 기본 표시 화면)의 색상 심도를 가져오는 방법을 보여 줍니다.
var mainScreen:Screen = Screen.mainScreen;
var colors:uint = mainScreen.colorDepth;
AIR-only mainScreen속성 
mainScreen:Screen  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

기본 표시입니다.



구현
    public static function get mainScreen():Screen

예제
다음 예제에서는 이 컴퓨터의 "기본" 화면에 나타내는 Screen 객체를 가져오는 방법을 보여 줍니다.
var primaryScreen:Screen = Screen.mainScreen;
AIR-only screens속성 
screens:Array  [읽기 전용]

언어 버전: ActionScript 3.
런타임 버전: AIR 1.0

현재 사용 가능한 화면의 배열입니다.

반환된 배열을 수정해도 사용할 수 있는 화면에 아무런 영향이 없습니다.



구현
    public static function get screens():Array

예제
다음 예제에서는 사용할 수 있는 화면을 포함하는 배열을 가져오는 방법을 보여 줍니다.
var screenArray:Array = Screen.screens;
AIR-only visibleBounds속성 
visibleBounds:Rectangle  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

윈도우가 표시될 이 화면에 있는 영역의 경계입니다.

화면의 visibleBounds에는 Windows의 작업 표시줄 및 다른 고정된 데스크 막대가 제외되고, Mac OS X의 메뉴 모음과 시스템 설정에 따라 도크가 제외됩니다. 일부 Linux 구성에서는 표시될 경계를 확인할 수 없습니다. 이러한 경우 visibleBounds 속성은 screenBounds 속성과 같은 값을 반환합니다.



구현
    public function get visibleBounds():Rectangle

예제
다음 예제에서는 화면(이 경우, 기본 표시 화면)의 사용 가능한 경계를 가져오는 방법을 보여 줍니다.
import flash.display.Screen;
import flash.geom.Rectangle;

var mainScreen:Screen = Screen.mainScreen;
var screenBounds:Rectangle = mainScreen.visibleBounds;
메서드 정보
AIR-only getScreensForRectangle()메서드
public static function getScreensForRectangle(rect:Rectangle):Array

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0

제공된 사각형을 교차하는 화면 집합을 반환합니다(비어 있을 수 있음).

매개 변수

rect:Rectangle — 기본 화면의 왼쪽 위 모서리에 있는 가상 데스크톱의 원점을 기준으로 하는 좌표를 사용하는 사각형입니다.

반환값
Arrayrect 매개 변수에 의해 정의된 영역의 임의 부분이 포함된 화면이 들어 있는 Screen 객체의 배열입니다.

예제

다음 예제에서는 지정된 사각형의 일부분이라도 포함하는 화면의 배열을 가져오는 방법을 보여 줍니다.
import flash.display.Screen;
import flash.geom.Rectangle;

var rect:Rectangle = new Rectangle(-200, 100, 1000, 600);
var intersectedScreens:Array = Screen.getScreensForRectangle(rect);
예제 예제 사용 방법
ScreenExample.as

다음 예제에서는 DockingWindow 클래스를 정의하여 화면의 가장자리에 고정되는 윈도우를 만듭니다. 이는 다음 단계로 이루어집니다.
  1. 키보드 이벤트에 응답하여 고정할 화면의 가장자리를 결정합니다.
  2. 정적 Screen 클래스 메서드 getScreensForRectangle()에 액세스하면 윈도우가 현재 표시된 화면에 대한 Screen 객체를 가져올 수 있습니다.
  3. 화면 크기를 기준으로 윈도우 경계를 재설정합니다.
  4. 새 윈도우 크기를 기준으로 윈도우 내용을 다시 그립니다.

이 클래스는 SystemChrome="none"transparent="true" 설정을 사용하여 AIR 응용 프로그램의 루트 클래스로 사용됩니다. 시스템 크롬이 있는 윈도우에 이 클래스를 사용하려면 윈도우 위치 및 크기를 계산할 때 윈도우의 크롬 두께와 최소 폭을 고려해야 합니다.

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