適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
flash.display 

Screen  - AS3

套件flash.display
類別public final class Screen
繼承Screen Inheritance EventDispatcher Inheritance Object

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0

Screen 類別會提供此應用程式可用之顯示螢幕的相關資訊。

在較大的「虛擬桌面」中,各個螢幕都是獨立的桌面區域。虛擬桌面的原點位於作業系統指定之主要螢幕的左上角。因此,每個顯示螢幕的邊界座標可能會是負值。況且,也可能會有不在任何顯示螢幕中的虛擬桌面區域。

Screen 類別包含靜態類別成員,可供存取可用的螢幕物件和實體成員,這些物件和成員可供存取個別螢幕的屬性。您不應該快取螢幕資訊,因為使用者可能會隨時變更此資訊。

請注意,螢幕 (Screen) 和連接至電腦的實體螢幕 (Monitor) 之間的關係,不一定要是一對一的對應關係。例如,兩個螢幕 (Monitor) 可以同時顯示相同的螢幕 (Screen)。

您無法直接將 Screen 類別實體化。呼叫 new Screen() 建構函式會擲回 ArgumentError 例外。

檢視範例



公用屬性
 屬性定義自
      bounds : Rectangle
[唯讀] 此螢幕的邊界。
Screen
      colorDepth : int
[唯讀] 此螢幕的顏色深度 (以位元數表示)。
Screen
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
      mainScreen : Screen
[靜態] [唯讀] 主要螢幕。
Screen
      mode : ScreenMode
Screen 物件的目前螢幕模式。
Screen
      modes : Array
[唯讀] Screen 物件的 ScreenMode 物件陣列。
Screen
      screens : Array
[靜態] [唯讀] 目前可用的螢幕陣列。
Screen
      visibleBounds : Rectangle
[唯讀] 此螢幕上可見視窗的區域邊界。
Screen
公用方法
 方法定義自
 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
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。EventDispatcher
 Inherited[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。EventDispatcher
屬性詳細資訊
    

bounds

屬性
bounds:Rectangle  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0

此螢幕的邊界。

此螢幕位置會相對於虛擬桌面。

在使用特定視窗管理員的 Linux 系統上,此屬性會傳回桌面邊界,而不是螢幕的邊界。



實作
    public function get bounds():Rectangle

範例  ( 如何使用本範例 )
下列範例說明如何取得螢幕 (在此例中為主要顯示螢幕) 的邊界:
import flash.display.Screen;
import flash.geom.Rectangle;

var mainScreen:Screen = Screen.mainScreen;
var screenBounds:Rectangle = mainScreen.bounds;
    

colorDepth

屬性 
colorDepth:int  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0

此螢幕的顏色深度 (以位元數表示)。



實作
    public function get colorDepth():int

範例  ( 如何使用本範例 )
下列範例說明如何取得螢幕 (在此例中為主要顯示螢幕) 的顏色深度:
var mainScreen:Screen = Screen.mainScreen;
var colors:uint = mainScreen.colorDepth;
    

mainScreen

屬性 
mainScreen:Screen  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0

主要螢幕。



實作
    public static function get mainScreen():Screen

範例  ( 如何使用本範例 )
下列程式碼將示範如何取得代表此電腦之「主要」螢幕的 Screen 物件:
var primaryScreen:Screen = Screen.mainScreen;
    

mode

屬性 
mode:ScreenMode

語言版本: ActionScript 3.0
執行階段版本: AIR 29.0

Screen 物件的目前螢幕模式。mode 屬性表示特定螢幕裝置的目前螢幕模式。



實作
    public function get mode():ScreenMode
    public function set mode(value:ScreenMode):void
    

modes

屬性 
modes:Array  [唯讀]

語言版本: ActionScript 3.0
執行階段版本: AIR 29.0

Screen 物件的 ScreenMode 物件陣列。modes 屬性表示特定螢幕裝置的支援螢幕模式。



實作
    public function get modes():Array
    

screens

屬性 
screens:Array  [唯讀]

語言版本: ActionScript 3.
執行階段版本: AIR 1.0

目前可用的螢幕陣列。

修改已傳回的陣列對可用的螢幕沒有任何作用。



實作
    public static function get screens():Array

範例  ( 如何使用本範例 )
下列範例說明如何取得包含可用螢幕的陣列:
var screenArray:Array = Screen.screens;
    

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;
方法詳細資訊

    getScreensForRectangle

()方法
public static function getScreensForRectangle(rect:Rectangle):Array

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0

傳回與提供之矩形相交的螢幕集合 (可能是空的)。

參數

rect:Rectangle — 其座標相對於虛擬桌面之原點 (位於主要螢幕的左上角) 的矩形。

傳回值
Array — 包含螢幕 (具有 rect 參數所定義的任何部分區域) 之 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();
            }
        }
    }
}




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。