套件 | flash.display |
類別 | public class Stage |
繼承 | Stage DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
對於在瀏覽器中 (在 Flash® Player 中) 執行的 SWF 內容而言,此 Stage 表示 Flash 內容所顯示的整個區域。對於在桌上型電腦作業系統上 AIR 中執行的內容而言,每個 NativeWindow 物件都有相對應的 Stage 物件。
Stage 物件未提供全域存取, 您需要透過 DisplayObject 實體的 stage
屬性才能存取它。
Stage 類別有數個祖系類別 (DisplayObjectContainer、InteractiveObject、DisplayObject 和 EventDispatcher),Stage 類別會從這些祖系類別繼承屬性與方法。 在這些屬性與方法中,有許多無法用於 Stage 物件,或者在呼叫 Stage 物件時需要安全性檢查。 需要安全性檢查的屬性與方法會記錄成 Stage 類別的一部分。
此外,下列繼承而來的屬性也不適用於 Stage 物件。 如果您嘗試設定這些屬性,就會擲回 IllegalOperationError。 雖然要讀取這些屬性不會有問題,但由於您無法設定它們,所以它們一定會包含預設值。
-
accessibilityProperties
-
alpha
-
blendMode
-
cacheAsBitmap
-
contextMenu
-
filters
-
focusRect
-
loaderInfo
-
mask
-
mouseEnabled
-
name
-
opaqueBackground
-
rotation
-
scale9Grid
-
scaleX
-
scaleY
-
scrollRect
-
tabEnabled
-
tabIndex
-
transform
-
visible
-
x
-
y
某些事件您可能會預期是 Stage 類別的一部分 (如 enterFrame
、exitFrame
、frameConstructed
和 render
),但卻不是 Stage 事件,因為無法保證在使用這些事件的每種情況下一定都有 Stage 物件的參考。這些事件無法由 Stage 物件傳送,而是由每個 DisplayObject 實體傳送;也就是說,您可以將事件偵聽程式加入至任何 DisplayObject 實體以偵聽這些事件。這些事件是 DisplayObject 類別的一部分,名稱為廣播事件,與以特定 DisplayObject 實體做為目標的事件有所區別。另外還有兩個廣播事件 (activate
和 deactivate
) 屬於 DisplayObject 的父類別 EventDispatcher。activate
和 deactivate
事件與 DisplayObject 廣播事件行為都相似,唯一不同的是,這兩個事件不只會由所有 DisplayObject 實體傳送,還會由所有 EventDispatcher 實體和其他 EventDispatcher 子類別的實體傳送。如需有關廣播事件的詳細資訊,請參閱 DisplayObject 類別。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
對此 InteractiveObject 實體目前的輔助功能實作 (AccessibilityImplementation)。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
此顯示物件的目前輔助功能選項。 | DisplayObject | ||
align : String
來自 StageAlign 類別的數值可用來指定 Flash Player 舞台或瀏覽器的對齊方式。 | Stage | ||
allowsFullScreen : Boolean [唯讀]
指定此舞台是否允許使用全螢幕模式
| Stage | ||
allowsFullScreenInteractive : Boolean [唯讀]
指定此舞台是否允許以文字輸入模式使用全螢幕
| Stage | ||
alpha : Number
指出所指定物件的 Alpha 透明度值。 | DisplayObject | ||
autoOrients : Boolean
指定當裝置方向變更時,舞台是否自動變更方向。 | Stage | ||
blendMode : String
來自 BlendMode 類別的值,會指定要使用何種混合模式。 | DisplayObject | ||
blendShader : Shader [唯寫]
設定用來混合前景和背景的著色器。 | DisplayObject | ||
browserZoomFactor : Number [唯讀]
指定瀏覽器縮放係數。 | Stage | ||
cacheAsBitmap : Boolean
如果設定為 true,Flash 執行階段會快取顯示物件的內部點陣圖表示法。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
如果為非 null,當 cacheAsBitmap 設定為 true 時,這個 Matrix 物件會定義顯示物件的顯示方法。 | DisplayObject | ||
color : uint
SWF 背景顏色。 | Stage | ||
colorCorrection : String
控制 Flash 執行階段用於顯示的色彩校正。 | Stage | ||
colorCorrectionSupport : String [唯讀]
指定 Flash 階段作業是否正在支援色彩校正的作業系統上執行,以及 Flash 執行階段是否能讀取及辨識主 (主要) 監視器的色彩描述檔。 | Stage | ||
constructor : * | Stage | ||
contentsScaleFactor : Number [唯讀]
指定舞台的有效像素縮放係數。 | Stage | ||
contextMenu : NativeMenu
指定與此物件有關聯的快顯選單。 | InteractiveObject | ||
deviceOrientation : String [唯讀]
裝置的實體方向。 | Stage | ||
displayState : String
自 StageDisplayState 類別傳回的值,指定要使用的顯示狀態。 | Stage | ||
doubleClickEnabled : Boolean
會指定物件是否會收到 doubleClick 事件。 | InteractiveObject | ||
filters : Array
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。 | DisplayObject | ||
focus : InteractiveObject
成為鍵盤焦點的互動式物件;或為 null (如果尚未設定焦點,或者成為焦點的物件屬於呼叫物件無法存取的安全執行程序)。 | Stage | ||
focusRect : Object
會指定這個物件是否會顯示焦點矩形。 | InteractiveObject | ||
frameRate : Number
接收並設定舞台的影格速率。 | Stage | ||
fullScreenHeight : uint [唯讀]
傳回如果立即進入全螢幕狀態,將會使用的監視器高度。 | Stage | ||
fullScreenSourceRect : Rectangle
將 Flash 執行階段設定為放大舞台的特定區域為全螢幕模式。 | Stage | ||
fullScreenWidth : uint [唯讀]
傳回如果立即進入全螢幕狀態,將會使用的監視器寬度。 | Stage | ||
height : Number [覆寫]
會指出顯示物件的高度,以像素為單位。 | Stage | ||
loaderInfo : LoaderInfo [唯讀]
會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。 | DisplayObject | ||
mask : DisplayObject
呼叫之顯示物件會以指定的 mask 物件遮蓋。 | DisplayObject | ||
metaData : Object
如果中繼資料是透過 PlaceObject4 標籤與 SWF 檔案中的這個 DisplayObject 實體一同儲存,則會取得 DisplayObject 實體的中繼資料物件。 | DisplayObject | ||
mouseChildren : Boolean [覆寫]
判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。 | Stage | ||
mouseEnabled : Boolean
指定此物件是否接收滑鼠或其他使用者輸入及訊息。 | InteractiveObject | ||
mouseLock : Boolean
設定為 true 可啟用滑鼠鎖定。 | Stage | ||
mouseX : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 x 座標,以像素為單位。 | DisplayObject | ||
mouseY : Number [唯讀]
指出滑鼠或使用者輸入裝置位置的 y 座標,以像素為單位。 | DisplayObject | ||
name : String
指出 DisplayObject 的實體名稱。 | DisplayObject | ||
nativeWindow : NativeWindow [唯讀]
內含此 Stage 之 NativeWindow 物件的參考。 | Stage | ||
needsSoftKeyboard : Boolean
指定虛擬鍵盤 (螢幕上的軟體鍵盤) 是否應在此 InteractiveObject 實體接收到焦點時顯示。 | InteractiveObject | ||
numChildren : int [覆寫] [唯讀]
傳回此物件的子系數量。 | Stage | ||
opaqueBackground : Object
會指定顯示物件是否不透明,並具有特定背景顏色。 | DisplayObject | ||
orientation : String [唯讀]
舞台目前的方向。 | Stage | ||
parent : DisplayObjectContainer [唯讀]
指出包含此顯示物件的 DisplayObjectContainer 物件。 | DisplayObject | ||
quality : String
StageQuality 類別的值,可指定所使用的顯示品質。 | Stage | ||
root : DisplayObject [唯讀]
對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。 | DisplayObject | ||
rotation : Number
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。 | DisplayObject | ||
rotationX : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 x 軸旋轉 (以度數為單位)。 | DisplayObject | ||
rotationY : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 y 軸旋轉 (以度數為單位)。 | DisplayObject | ||
rotationZ : Number
表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 z 軸旋轉 (以度數為單位)。 | DisplayObject | ||
scale9Grid : Rectangle
目前產生效用的縮放格線。 | DisplayObject | ||
scaleMode : String
來自 StageScaleMode 類別的數值可用來指定要使用哪個縮放模式。 | Stage | ||
scaleX : Number
指出從註冊點套用的物件水平縮放 (百分比)。 | DisplayObject | ||
scaleY : Number
指出從物件註冊點套用的物件垂直縮放 (百分比)。 | DisplayObject | ||
scaleZ : Number
指出從物件註冊點套用的物件深度縮放 (百分比)。 | DisplayObject | ||
scrollRect : Rectangle
顯示物件的捲動矩形範圍。 | DisplayObject | ||
showDefaultContextMenu : Boolean
指定要顯示或隱藏 Flash 階段作業快顯選單中的預設項目。 | Stage | ||
softKeyboard : String
控制軟體鍵盤的外觀。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
定義顯示軟體鍵盤時,應保留於螢幕上的區域 (iOS 未提供)。 | InteractiveObject | ||
softKeyboardRect : Rectangle [唯讀]
Rectangle 用以指定目前軟體鍵盤涵蓋的舞台區域。 | Stage | ||
stage : Stage [唯讀]
顯示物件的「舞台」。 | DisplayObject | ||
stage3Ds : Vector.<Stage3D> [唯讀]
顯示三維內容可用的 Stage3D 物件清單。 | Stage | ||
stageFocusRect : Boolean
指定成為焦點的物件是否會顯示亮光邊框。 | Stage | ||
stageHeight : int
指定舞台的目前高度,以像素為單位。 | Stage | ||
stageVideos : Vector.<StageVideo> [唯讀]
可用於播放外部視訊的 StageVideo 物件的清單。 | Stage | ||
stageWidth : int
指定舞台的目前寬度,以像素為單位。 | Stage | ||
supportedOrientations : Vector.<String> [唯讀]
目前裝置支援的方向。 | Stage | ||
supportsOrientationChange : Boolean [靜態] [唯讀]
應用程式是否支援舞臺方向的變更 (以及裝置旋轉)。 | Stage | ||
tabChildren : Boolean [覆寫]
判斷物件的子系是否支援啟用定位鍵。 | Stage | ||
tabEnabled : Boolean
會指定這個物件是否在停駐點順序中。 | InteractiveObject | ||
tabIndex : int
會指定 SWF 檔中的物件停駐點順序。 | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [覆寫] [唯讀]
傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。 | Stage | ||
transform : flash.geom:Transform
這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。 | DisplayObject | ||
visible : Boolean
不管是否看得見顯示物件。 | DisplayObject | ||
vsyncEnabled : Boolean
這代表基礎圖形解決方案的 vsync 目前狀態。我們可以啟用/停用 vsync,這樣就不需要等待下一個 VSYNC'ed 狀態,即可立即顯示。 | Stage | ||
width : Number [覆寫]
會指出顯示物件的寬度,以像素為單位。 | Stage | ||
wmodeGPU : Boolean [唯讀]
指出是否提供以及可以使用 GPU 調整。 | Stage | ||
x : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。 | DisplayObject | ||
y : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。 | DisplayObject | ||
z : Number
表示 DisplayObject 實體相對於 3D 父輩容器的 z 座標位置 (沿著 z 軸)。 | DisplayObject |
方法 | 定義自 | ||
---|---|---|---|
[覆寫]
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 | Stage | ||
[覆寫]
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 | Stage | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [覆寫]
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | Stage | ||
指出安全性限制是否會造成傳回的清單 (可用指定的 point 點呼叫 DisplayObjectContainer.getObjectsUnderPoint() 方法來取得) 省略任何顯示物件。 | DisplayObjectContainer | ||
您可以將鍵盤焦點設定至 objectToFocus 指定的互動式物件,並搭配 direction 參數指定焦點方向。 | Stage | ||
判斷指定的顯示物件是否為 DisplayObjectContainer 實體的子系,或為實體本身。 | DisplayObjectContainer | ||
[覆寫]
會將事件傳送到事件流程。 | Stage | ||
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。 | DisplayObject | ||
傳回存在於指定索引位置的子顯示物件實體。 | DisplayObjectContainer | ||
傳回具有指定名稱的子顯示物件。 | DisplayObjectContainer | ||
傳回 child DisplayObject 實體的索引位置。 | DisplayObjectContainer | ||
傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。 | DisplayObjectContainer | ||
根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。 | DisplayObject | ||
將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。 | DisplayObject | ||
將二維點從「舞台」(全域) 座標轉換為三維顯示物件的 (區域) 座標。 | DisplayObject | ||
[覆寫]
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | Stage | ||
指出物件是否有已定義的指定屬性。 | Object | ||
評估顯示物件的範圍框,看它是否與 obj 顯示物件的範圍框重疊或相交。 | DisplayObject | ||
評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。 | DisplayObject | ||
呼叫 invalidate() 方法會發出訊號給 Flash 執行階段,要 Flash 執行階段在下次將顯示清單顯示出來時警告顯示物件 (例如,當播放磁頭進入到新的影格)。 | Stage | ||
判斷 Stage.focus 屬性是否基於安全性考量而傳回 null。 | Stage | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
將三維顯示物件的 (區域) 座標的三維點轉換為「舞台」(全域) 座標中的二維點。 | DisplayObject | ||
將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。 | DisplayObject | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。 | DisplayObjectContainer | ||
[覆寫]
從 DisplayObjectContainer 子清單中的指定索引位置移除子 DisplayObject。 | Stage | ||
將所有 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。 | DisplayObjectContainer | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
升起顯示虛擬鍵盤。 | InteractiveObject | ||
將舞台設定為具有指定外觀比例的方向。 | Stage | ||
[覆寫]
變更顯示物件容器中現有子系的位置。 | Stage | ||
將舞台設定為指定的方向。 | Stage | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
遞迴停止執行所有 MovieClips 的時間軸根源於此物件。 | DisplayObjectContainer | ||
替換兩個指定子物件的 z 順序 (深度階層,由前至後順序)。 | DisplayObjectContainer | ||
[覆寫]
在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。 | Stage | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
[覆寫]
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | Stage |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
當顯示物件加入顯示清單中時傳送。 | DisplayObject | |||
會在顯示物件加入舞台上的顯示清單時,以直接或是透過加入包含該顯示物件之子樹狀結構的方式傳送。 | DisplayObject | |||
當 Stage 物件的 browserZoomFactor 屬性變更時傳送。 | Stage | |||
當使用者從文字快顯選單中選取「清除」(或「刪除」) 時傳送。 | InteractiveObject | |||
會當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置主按鈕時傳送。 | InteractiveObject | |||
當使用者手勢在 AIR 應用程式中觸發與此互動式物件相關聯的快顯選單時傳送。 | InteractiveObject | |||
當使用者針對複製作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「複製」時傳送。 | InteractiveObject | |||
當使用者針對剪下作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「剪下」時傳送。 | InteractiveObject | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
在 InteractiveObject 物件的 doubleClickEnabled 旗標設為 true 的情況下,當使用者在相同的物件上方連續兩次快速按下並放開指標裝置主要按鈕時傳送。 | InteractiveObject | |||
[廣播事件] 當播放磁頭進入新影格時傳送。 | DisplayObject | |||
[廣播事件] 當播放磁頭結束目前影格時傳送。 | DisplayObject | |||
當顯示物件取得焦點之後傳送。 | InteractiveObject | |||
當顯示物件失去焦點時傳送。 | InteractiveObject | |||
[廣播事件] 在影格顯示物件的建構函式執行之後,且影格指令碼執行之前傳送。 | DisplayObject | |||
當 Stage 物件進入 (或離開) 全螢幕模式時傳送。 | Stage | |||
當使用者沿著觸控面與 InteractiveObject 實體建立接觸點 (例如沿著 Apple TV 的 Siri Remote 觸控面點選),某些裝置可能也會將此接觸解譯為數個觸控事件的組合。 | InteractiveObject | |||
當使用在觸控裝置上的同一個 InteractiveObject 實體上按下兩個接觸點後送出 (例如在行動電話或平板電腦觸控螢幕的顯示物件上方,以兩支手指按下後鬆開)。 | InteractiveObject | |||
當使用者在觸控裝置上,將接觸點移動到 InteractiveObject 實體上方後傳送 (例如,在行動電話或平板電腦觸控螢幕的顯示物件上,由左向右移動手指)。 | InteractiveObject | |||
當使用者在 InteractiveObject 實體的接觸點上做出旋轉手勢後傳送 (例如兩指觸摸行動電話或平板電腦的觸控螢幕,然後手指在顯示物件上旋轉)。 | InteractiveObject | |||
當使用者在與 InteractiveObject 實體的某個接觸點上做出揮動手勢後傳送 (例如,三指併在一起觸碰行動電話或平板電腦的觸控螢幕,然後在顯示物件上快速平行移動手指)。 | InteractiveObject | |||
當使用者與 InteractiveObject 實體建立接觸點,然後在觸控裝置上點一下後送出 (例如,將多根手指放到行動電話或平板電腦觸控螢幕的顯示物件上以開啟選單,然後其中一根手點一下,選取選單項目)。 | InteractiveObject | |||
當使用者在 InteractiveObject 實體的某個接觸點上做出放大縮小手勢後傳送 (例如兩指併在一起觸摸行動電話或平板電腦的觸控螢幕,然後手指在顯示物件上快速張開)。 | InteractiveObject | |||
這個事件會送出至任何支援 IME 內嵌輸入的用戶端應用程式。 | InteractiveObject | |||
會當使用者按下按鍵時傳送。 | InteractiveObject | |||
當使用者嘗試使用鍵盤瀏覽變更焦點時傳送。 | InteractiveObject | |||
會當使用者放開按鍵時傳送。 | InteractiveObject | |||
當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置中間按鈕時傳送。 | InteractiveObject | |||
當使用者將指向裝置的中間按鈕移至 InteractiveObject 實體上方按下時傳送。 | InteractiveObject | |||
當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。 | InteractiveObject | |||
當使用者將指向裝置按鈕移至 InteractiveObject 實體上方按下時傳送。 | InteractiveObject | |||
會當使用者嘗試使用指向裝置變更焦點時傳送。 | InteractiveObject | |||
當指標移到舞台區域外時,由 Stage 物件傳送。 | Stage | |||
會當指向裝置停在 InteractiveObject 上方的情況下使用者將其移動時傳送。 | InteractiveObject | |||
會當使用者將指向裝置移開 InteractiveObject 實體時傳送。 | InteractiveObject | |||
會當使用者將指向裝置移至 InteractiveObject 實體上方時傳送。 | InteractiveObject | |||
當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。 | InteractiveObject | |||
當滑鼠滾輪在 InteractiveObject 實體上方轉動時傳送。 | InteractiveObject | |||
當使用者釋放手勢時,由拖曳初始程式 InteractiveObject 傳送。 | InteractiveObject | |||
已在目標 InteractiveObject 上放下拖曳的物件,而且已呼叫 DragManager.acceptDragDrop() 接受該放開的資料時,由此目標 InteractiveObject 傳送。 | InteractiveObject | |||
當手勢進入 InteractiveObject 的邊界時,由此 InteractiveObject 傳送。 | InteractiveObject | |||
當手勢離開 InteractiveObject 的邊界時,由此 InteractiveObject 傳送。 | InteractiveObject | |||
當拖曳手勢還留在 InteractiveObject 的邊界內,由此 InteractiveObject 持續傳送。 | InteractiveObject | |||
在呼叫 DragManager.doDrag() 進行拖曳作業初期,由指定做為拖曳初始程式的 InteractiveObject 傳送。 | InteractiveObject | |||
在呼叫 DragManager.doDrag() 進行拖曳作業期間,由指定做為拖曳初始程式的 InteractiveObject 傳送。 | InteractiveObject | |||
舞台方向變更時,會由 Stage 物件傳送。 | Stage | |||
舞台方向開始變更時,會由 Stage 物件傳送。 | Stage | |||
當使用者針對貼上作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「貼上」時傳送。 | InteractiveObject | |||
在使用者將作用中觸控筆往下移至超過螢幕鄰近偵測邊框時傳送。 | InteractiveObject | |||
在使用者將作用中觸控筆提到螢幕鄰近偵測邊框時傳送。 | InteractiveObject | |||
在使用者將作用中觸控筆移到螢幕上方,而其餘仍在鄰近偵測邊框內時傳送。 | InteractiveObject | |||
在使用者將作用中觸控筆移出這個 InteractiveObject 之外,而其餘仍在螢幕的鄰近偵測邊框內時傳送。 | InteractiveObject | |||
在使用者直接將作用中觸控筆移到這個 InteractiveObject 上方,而其餘仍在螢幕的鄰近偵測邊框內時傳送。 | InteractiveObject | |||
在使用者將作用中觸控筆移出這個 InteractiveObject 及其任一子系之外,而其餘仍在螢幕的鄰近偵測邊框內時傳送。 | InteractiveObject | |||
在使用者透過這個 InteractiveObject,從顯示清單中後代的物件樹狀結構之外移動作用中觸控筆時傳送 (而其餘仍在螢幕的鄰近偵測邊框內)。 | InteractiveObject | |||
當使用者第一次按下 InteractiveObject 實體上方的按鈕,然後將指向裝置滑出 InteractiveObject 實體之後即放開指向裝置上的按鈕時傳送。 | InteractiveObject | |||
會當顯示物件將要從顯示清單移除時傳送。 | DisplayObject | |||
會在顯示物件即將從顯示清單移除時,以直接或是透過移除包含該顯示物件之子樹狀結構的方式傳送。 | DisplayObject | |||
[廣播事件] 當顯示清單將要更新和顯示時傳送。 | DisplayObject | |||
當 Stage 物件的 scaleMode 屬性設為 StageScaleMode.NO_SCALE 並重新調整 SWF 檔案大小時傳送。 | Stage | |||
當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置右邊按鈕時傳送。 | InteractiveObject | |||
當使用者將指向裝置按鈕移至 InteractiveObject 實體上方按下時傳送。 | InteractiveObject | |||
當使用者將指向裝置按鈕移至 InteractiveObject 實體上方放開時傳送。 | InteractiveObject | |||
會當使用者將指向裝置移開 InteractiveObject 實體時傳送。 | InteractiveObject | |||
會當使用者將指向裝置移至 InteractiveObject 實體上方時傳送。 | InteractiveObject | |||
當使用者針對全選作業啟動平台特有的快速鍵組合或從文字快顯選單中選取「全選」時傳送。 | InteractiveObject | |||
升起顯示軟體鍵盤之後立即傳送。 | InteractiveObject | |||
升起顯示軟體鍵盤前立即傳送。 | InteractiveObject | |||
降下隱藏軟體鍵盤之後立即傳送。 | InteractiveObject | |||
當 stageVideos 屬性的狀態變更時,會由 Stage 物件傳送。 | Stage | |||
在物件的 tabChildren 旗標值變更時傳送。 | InteractiveObject | |||
在物件的 tabEnabled 旗標變更時傳送。 | InteractiveObject | |||
在物件的 tabIndex 屬性值變更時傳送。 | InteractiveObject | |||
當使用者輸入一或多文字的字元時送出。 | InteractiveObject | |||
當使用者在第一次接觸觸控裝置後傳送 (例如手指觸摸行動電話或平板電腦的觸控螢幕)。 | InteractiveObject | |||
當使用者在觸控裝置上移除接觸點後傳送 (例如在行動電話或平板電腦觸控螢幕上移開手指)。 | InteractiveObject | |||
當使用者觸控裝置時傳送,並且連續不斷地傳送,直到接觸點移除為止。 | InteractiveObject | |||
當使用者在觸控裝置中,將接觸點移出 InteractiveObject 實體後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件移至另一個顯示物件)。 | InteractiveObject | |||
當使用者在觸控裝置中將接觸點移至 InteractiveObject 實體上方後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件外面的某一點,往顯示物件上方拖曳)。 | InteractiveObject | |||
當使用者在觸控裝置上,將接觸點從 InteractiveObject 實體移出後送出 (例如,在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件上方拖曳到顯示物件以外)。 | InteractiveObject | |||
當使用者在觸控裝置中將接觸點移至 InteractiveObject 實體上方後送出 (例如在行動電話或平板電腦的觸控螢幕上,將手指從顯示物件外面的某一點,往顯示物件上方拖曳)。 | InteractiveObject | |||
當使用者在觸控裝置的同一個 InteractiveObject 實體上,在原先開始接觸點放開後送出 (例如在行動電話或平板電腦觸控螢幕上的顯示物件上方,以手指按下某個點後又鬆開)。 | InteractiveObject | |||
當 vsync 屬性的狀態變更時,會由 Stage 物件傳送。 | Stage |
align | 屬性 |
align:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
來自 StageAlign 類別的數值可用來指定 Flash Player 舞台或瀏覽器的對齊方式。 以下為有效值:
值 | 垂直對齊 | 水平 |
---|---|---|
StageAlign.TOP | 上方 | 置中 |
StageAlign.BOTTOM | 底端 | 置中 |
StageAlign.LEFT | 置中 | 靠左 |
StageAlign.RIGHT | 置中 | 靠右 |
StageAlign.TOP_LEFT | 上方 | 靠左 |
StageAlign.TOP_RIGHT | 上方 | 靠右 |
StageAlign.BOTTOM_LEFT | 底端 | 靠左 |
StageAlign.BOTTOM_RIGHT | 底端 | 靠右 |
align
屬性只適用於與 Stage 擁有者 (主要的 SWF 檔案) 位於相同安全執行程序的物件。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain()
方法或 Security.alowInsecureDomain()
方法,將權限授與物件的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
實作
public function get align():String
public function set align(value:String):void
相關 API 元素
allowsFullScreen | 屬性 |
allowsFullScreenInteractive | 屬性 |
autoOrients | 屬性 |
autoOrients:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
指定當裝置方向變更時,舞台是否自動變更方向。
此屬性的初始值衍生自應用程式描述器的 autoOrients
元素,且預設為 false
。將屬性變更為 false
時,將無法保證此行為。在部分裝置上,舞台仍然維持目前的方向。在其他裝置上,舞台方向會變更至裝置定義的「標準」方向,在此之後將不會進一步變更舞台的方向。
AIR 描述檔支援:行動裝置支援此項功能,但桌上型電腦作業系統或 AIR for TV 裝置不支援。您可以使用 Stage.supportsOrientantionChange
屬性測試執行階段的支援狀況。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
實作
public function get autoOrients():Boolean
public function set autoOrients(value:Boolean):void
相關 API 元素
browserZoomFactor | 屬性 |
color | 屬性 |
colorCorrection | 屬性 |
colorCorrection:String
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
控制 Flash 執行階段用於顯示的色彩校正。只有為主監視器指定了有效的 ICC 色彩描述檔 (其中指定裝置的特定色彩特質) 後,色彩校正才會運作。根據預設,Flash 執行階段會嘗試符合其主機 (通常是瀏覽器) 的色彩校正。
使用 Stage.colorCorrectionSupport
屬性判斷目前系統是否提供色彩校正及其預設狀態。如果可以使用色彩校正,舞台上的所有顏色都會視為位於 sRGB 色域 (最標準的色域) 中。在色彩校正期間,不會將輸入裝置的來源描述檔納入考慮。此時不會套用任何輸入色彩校正;只有舞台輸出會對應至主監視器的 ICC 顏色描述檔。
一般而言,啟動色彩管理的好處包括獲得可預期且一致的色彩、更好的混合、精準的校對,與更有效率的跨媒體輸出。但是請注意,由於每一種裝置的色域會與其他裝置或原始影像的色域不同,因此色彩管理並無法提供完美的混合。同時,沒有一種色彩管理能夠省略掉自訂或編輯描述檔的需要。色彩描述檔仰賴瀏覽器、作業系統 (OS)、字業系統擴充功能、輸出裝置,以及應用程式的支援。
套用色彩校正會降低 Flash 執行階段效能。Flash 執行階段的色彩校正是一種文件樣式的色彩校正,因為所有的 SWF 影片都會被視為具有隱含 sRGB 描述檔的文件。使用 Stage.colorCorrectionSupport
屬性,告知 Flash 執行階段在顯示 SWF 檔案 (文件) 要校正色彩以顯示色域。Flash 執行階段只會補償不同監視器之間的差異,而不會補償輸入裝置之間 (相機、掃描器等等) 的差異。
三個可能的值是 flash.display.ColorCorrection 類別中對應常數的字串:
"default"
:使用與主機系統相同的色彩校正。"on"
:一定會執行色彩校正。"off"
:絕不執行色彩校正。
實作
public function get colorCorrection():String
public function set colorCorrection(value:String):void
相關 API 元素
範例 ( 如何使用本範例 )
Stage.colorCorrection
值不是來自 ColorCorrection 類別的值,則處理常式會報告一項錯誤。
function addHandler(add_event:Event) { switch(stage.colorCorrection) { case ColorCorrection.ON: stage.colorCorrection = ColorCorrection.OFF; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.OFF: stage.colorCorrection = ColorCorrection.DEFAULT; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.DEFAULT: stage.colorCorrection = ColorCorrection.ON; lblCMEnableState.text = "State: " + stage.colorCorrection; break; default: lblCMEnableState.text = "Error."; break; }
colorCorrectionSupport | 屬性 |
colorCorrectionSupport:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10, AIR 1.5 |
指定 Flash 階段作業是否正在支援色彩校正的作業系統上執行,以及 Flash 執行階段是否能讀取及辨識主 (主要) 監視器的色彩描述檔。這個屬性也會傳回主機系統 (通常是瀏覽器) 上色彩校正的預設狀態。目前,傳回值可為:
三個可能的值是 flash.display.ColorCorrectionSupport 類別中對應常數的字串:
"unsupported"
:無法使用色彩校正。"defaultOn"
:一定會執行色彩校正。"defaultOff"
:絕不執行色彩校正。
實作
public function get colorCorrectionSupport():String
相關 API 元素
範例 ( 如何使用本範例 )
stage.colorCorrectionSupport
的值,瞭解它是否為 DEFAULT_ON
或 DEFAULT_OFF
,這兩個是來自 ColorCorrectionSupport 類別的值。如果屬性為其中一個值,則文字欄位會顯示目前的值。否則,如果值不是 DEFAULT_ON
也不是 DEFAULT_OFF
,則文字欄位會顯示「不支援」。
function addHandler(add_event:Event) { if (stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_ON || stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_OFF) { lblHasCM.text = "stage.colorCorrectionSupport: " + stage.colorCorrectionSupport; } else { lblHasCM.text = "stage.colorCorrectionSupport: unsupported"; } }
constructor | 屬性 |
contentsScaleFactor | 屬性 |
contentsScaleFactor:Number
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 11.5 |
指定舞台的有效像素縮放係數。在標準螢幕及 HiDPI (Retina 顯示器) 螢幕上,此值為 1。當舞台顯示在 HiDPI 螢幕上時,像素解析度會加倍;即使舞台縮放模式設定為 StageScaleMode.NO_SCALE 亦然。要報告的 Stage.stageWidth 和 Stage.stageHeight 會繼續採用傳統像素單位。
實作
public function get contentsScaleFactor():Number
deviceOrientation | 屬性 |
deviceOrientation:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
裝置的實體方向。
在具有滑蓋式鍵盤的裝置上,決定裝置方向時,鍵盤狀態的優先順序高於加速計所偵測到的旋轉。因此,在具有側邊滑蓋式鍵盤的縱向裝置上,當開啟鍵盤時,無論使用者如何手持裝置,deviceOrientation
屬性會報告 ROTATED_LEFT
。
設定或比較此屬性的值時,請使用 StageOrientation 類別中定義的常數。
AIR 描述檔支援:行動裝置支援此項功能,但桌上型電腦作業系統或 AIR for TV 裝置不支援。您可以使用 Stage.supportsOrientationChange
屬性測試執行階段的支援狀況。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
實作
public function get deviceOrientation():String
相關 API 元素
displayState | 屬性 |
displayState:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
自 StageDisplayState 類別傳回的值,指定要使用的顯示狀態。 以下為有效值:
StageDisplayState.FULL_SCREEN
會設定 AIR 應用程式或 Flash Player 中的內容,展開舞台以佈滿使用者的整個螢幕。鍵盤輸入已停用,但一組有限的非列印按鍵除外。StageDisplayState.FULL_SCREEN_INTERACTIVE
會設定應用程式展開舞台以佈滿使用者的整個螢幕,並同時允許鍵盤輸入。(從 Flash Player 11.3 開始,在 AIR 和 Flash Player 提供)。StageDisplayState.NORMAL
將舞台設回標準舞台顯示模式。
影片在全螢幕模式中的縮放行為是由 scaleMode
設定決定的 (可在 HTML 檔案中使用 Stage.scaleMode
屬性或 SWF 檔的 embed
標籤設定來設定)。 如果應用程式轉場為全螢幕模式時,scaleMode
屬性是設定為 noScale
,便會更新 Stage 的 width
和 height
屬性,而且 Stage 會傳送 resize
事件。如果設定了任何其他縮放模式,則會縮放舞台和其內容的大小以填滿新畫面。Stage 物件會保留其原始的 width
和 height
值,而且不會傳送 resize
事件。
下列限制適用於 HTML 頁面中播放的 SWF 檔 (而非使用獨立 Flash Player 或 AIR 執行階段的 SWF 檔):
- 若要啟用全螢幕模式,請將
allowFullScreen
參數加入到含有 SWF 檔案的 HTML 網頁的object
和embed
標籤中,並將allowFullScreen
設定為"true"
,如下列範例所示:<param name="allowFullScreen" value="true" /> ... <embed src="example.swf" allowFullScreen="true" ... >
HTML 也可以使用程式碼來產生內嵌 SWF 的標籤。 您必須變更指令碼,在指令碼中插入適當的
allowFullScreen
設定值。 Flash Professional 和 Flash Builder 所產生的 HTML 網頁會使用AC_FL_RunContent()
函數內嵌 SWF 檔的參考,而且您必須加入allowFullScreen
參數設定,如下所示:AC_FL_RunContent( ... "allowFullScreen", "true", ... )
- 全螢幕模式是相應於使用者按一下滑鼠或按壓按鍵的動作而觸發的;使用者若沒有輸入動作,影片就無法變更
Stage.displayState
。Flash 執行階段會限制全螢幕模式下的鍵盤輸入。可接受的按鍵包括終止全螢幕模式的鍵盤快速鍵,和非列印按鍵,如方向鍵、空格鍵、Shift 和 Tab 鍵。(使用全螢幕互動模式可支援來自額外按鍵的輸入)。用於結束全螢幕模式的鍵盤快速鍵如下:Escape (Windows、Linux 和 Mac)、Control+W (Windows)、Command+W (Mac) 和 Alt+F4。 - 從 Flash Player 9.0.115.0 開始,全螢幕的效果不論在無視窗模式或在視窗模式都一樣。如果您將「視窗模式」(HTML 中的
wmode
) 設定為「不透明無視窗」(opaque
) 或「透明無視窗」(transparent
),雖可以起始全螢幕,但全螢幕視窗一定是不透明的。 - 若要啟用支援鍵盤互動功能的全螢幕互動模式,請將
allowFullScreenInteractive
參數加入到含有 SWF 檔案的 HTML 網頁的object
和embed
標籤中,並將allowFullScreenInteractive
設定為"true"
,如下列範例所示:<param name="allowFullScreenInteractive" value="true" /> ...
這些限制「不」適用於在獨立 Flash Player 或 AIR 中執行的 SWF 內容。
進入全螢幕模式時,Flash 執行階段會迅速地在 SWF 內容上面顯示通知,告訴使用者他們正處於全螢幕模式且按下 Escape 鍵即可結束全螢幕模式。
進入全螢幕互動模式時,Flash Player 會在 SWF 內容上面顯示確認提示,讓使用者可以允許存取延伸鍵盤輸入 (包括列印按鍵),並且告訴使用者按下 Escape 鍵即可結束全螢幕互動模式。您不應對確認提示的外觀/位置進行任何假設。您可以透過偵聽 FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED
事件,判斷使用者是否已經允許存取延伸鍵盤輸入。
針對在全螢幕模式下執行的 AIR 內容,在播放視訊內容期間會停用系統螢幕保護程式和省電選項,直到視訊停止或離開全螢幕模式為止。
在 Linux 上,將 displayState
設定成 StageDisplayState.FULL_SCREEN
或 StageDisplayState.FULL_SCREEN_INTERACTIVE
是一種非同步作業。
實作
public function get displayState():String
public function set displayState(value:String):void
擲回值
SecurityError — 呼叫 Stage 物件的 displayState 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。當設定對話方塊在沒有使用者回應的情況下出現時,嘗試設定 displayState 屬性,或是並未將 param 或 embed HTML 標籤的 allowFullScreen 特質設定為 true ,都會擲回安全性錯誤。
|
相關 API 元素
範例 ( 如何使用本範例 )
displayState
屬性來建立全螢幕體驗。 注意: 由於安全性限制,只有在特定情況下 (例如當使用者按一下滑鼠或按下按鍵) 才能觸發全螢幕模式。 在瀏覽器中執行時,您必須將 allowFullScreen 屬性設定為 true。
package { import flash.display.Sprite; import flash.display.Stage; import flash.events.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Video; public class FullScreenExample extends Sprite { private var videoURL:String = "testVideo.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video; public function FullScreenExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK,toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { switch(stage.displayState) { case "normal": stage.displayState = "fullScreen"; break; case "fullScreen": default: stage.displayState = "normal"; break; } } // Video related: private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); video = new Video(stage.stageWidth,stage.stageHeight); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
focus | 屬性 |
focus:InteractiveObject
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
成為鍵盤焦點的互動式物件;或為 null
(如果尚未設定焦點,或者成為焦點的物件屬於呼叫物件無法存取的安全執行程序)。
實作
public function get focus():InteractiveObject
public function set focus(value:InteractiveObject):void
擲回值
Error — 如果目標無法設為焦點,則擲回錯誤。
|
範例 ( 如何使用本範例 )
myTF
,這樣使用者不必按一下任何東西,就可以開始輸入。在 iOS、Android 行動裝置和 tvOS 裝置上,使用者必須按一下文字欄位才會啟用軟體鍵盤。如果在編寫工具介面中測試這個程式碼,您只可以存取少數的按鍵,原因在於主機 (瀏覽器或工具) 會先解譯最先按下的按鍵。若要瞭解這個範例是否正確,請加以編譯並執行 SWF 檔案。
var myTF:TextField = new TextField(); myTF.border =true; myTF.type = TextFieldType.INPUT; addChild(myTF); stage.focus= myTF;
frameRate | 屬性 |
frameRate:Number
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
接收並設定舞台的影格速率。 影格速率是依每秒影格數來定義。 預設的速率設定為第一個載入的 SWF 檔案影格速率。 影格速率的有效值範圍為每秒 0.01 至 1000 個影格。
注意:應用程式可能跟不上高速的影格速率設定,這可能是因為目標平台不夠快,或者播放程式已經與顯示裝置的垂直空白計時同步化 (在 LCD 裝置上通常是 60 Hz)。在某些情況下,目標平台也可能選擇降低最高影格速率,以便獲得更高的 CPU 使用率。
針對在 Adobe AIR 中執行的內容,設定一個 Stage 物件的 frameRate
屬性將會變更所有 Stage 物件 (由其它 NativeWindow 物件所使用) 的影格速率。
實作
public function get frameRate():Number
public function set frameRate(value:Number):void
擲回值
SecurityError — 呼叫 Stage 物件的 frameRate 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
fullScreenHeight | 屬性 |
fullScreenHeight:uint
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
傳回如果立即進入全螢幕狀態,將會使用的監視器高度。如果使用者有多部監視器,所用監視器是當時大部分舞台所在的監視器。
注意:從擷取值到進入全螢幕大小,這中間如果使用者有機會將瀏覽器移到其它監視器,這個值可能會不正確。 如果您在將 Stage.displayState
設定為 StageDisplayState.FULL_SCREEN
的事件處理常式中擷取值,這將是正確的值。
這是監視器的像素高度,而且會與未來的舞台高度相同,但 Stage.align
必須設定為 StageAlign.TOP_LEFT
,而且 Stage.scaleMode
必須設定為 StageScaleMode.NO_SCALE
。
實作
public function get fullScreenHeight():uint
相關 API 元素
fullScreenSourceRect
fullScreenWidth
scaleMode
StageDisplayState
flash.events.Event.RESIZE
flash.events.FullScreenEvent
範例 ( 如何使用本範例 )
enterFullScreen()
事件處理常式,它會設定 fullScreenSourceRect
屬性並進入全螢幕模式。 為了設定 fullScreenSourceRect
屬性,事件處理常式會從紅色方形的位置和大小開始。 接著,它會比較紅色方形的比例 (寬度除以高度) 與全螢幕寬度和高度時舞台的比例,使它能夠放大矩形 (fullScreenSourceRect
) 以符合螢幕的比例。 結果是紅色方形會從上到下佔滿監視器,但左右兩邊看得到綠色背景。 如果比例不相符,則左右兩邊會顯示舞台背景色彩 (預設為白色),而不是綠色背景。
注意:在瀏覽器中測試這個範例。 在 Flash「發佈設定」對話方塊的「HTML」索引標籤上,選取「僅限 Flash - 允許全螢幕」範本。指定 Flash Player 9.0.115.0 版,並確定已在「格式」索引標籤上選取 Flash 和 HTML 格式。然後發佈產生的 HTML 檔,並在瀏覽器中開啟。
import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
fullScreenSourceRect | 屬性 |
fullScreenSourceRect:Rectangle
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
將 Flash 執行階段設定為放大舞台的特定區域為全螢幕模式。Flash 執行階段會盡可能以硬體縮放,也就是利用使用者電腦上的圖形卡和視訊卡,而且內容的顯示速度通常會比軟體縮放快。
當這個屬性設定為有效的矩形,而且 displayState
屬性設定為全螢幕模式時,Flash 執行階段會縮放指定的區域。ActionScript 中實際的「舞台」大小 (以像素為單位) 不會改變。Flash 執行階段會強制最小限制,使矩形的大小放得下標準的「按 Esc 離開全螢幕模式」訊息。這個限制通常大約是 260 x 30 像素,但可能因平台和 Flash 執行階段版本的不同而異。
只有當 Flash 執行階段不是處於全螢幕模式時,才能設定這個屬性。若要正確使用這個屬性,請先設定這個屬性,然後將 displayState
屬性設定為全螢幕模式,如程式碼範例所示。注意:在 Flash Player 15 和更高版本中,即使 Flash 執行階段處於全螢幕模式,也能設定這個屬性。
若要啟用縮放,請將 fullScreenSourceRect
屬性設定為矩形物件:
// valid, will enable hardware scaling stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
若要停用縮放,在 ActionScript 3.0 中請設定 fullScreenSourceRect=null
,而在 ActionScript 2.0 中則請設定 undefined
。
stage.fullScreenSourceRect = null;
使用者也可以在 Flash Player 的「顯示設定」中選取,以關閉預設啟用的硬體縮放。 如需詳細資訊,請參閱 www.adobe.com/go/display_settings_tw。
實作
public function get fullScreenSourceRect():Rectangle
public function set fullScreenSourceRect(value:Rectangle):void
相關 API 元素
Stage.displayState
Stage.scaleMode
flash.events.FullScreenEvent
flash.events.Event.RESIZE
範例 ( 如何使用本範例 )
import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; }
若要搭配硬體縮放使用全螢幕模式,必須符合下列條件:
- 需要 Flash Player 9.0.115.0 或更新版本,以及對其提供支援的編寫工具。
- 需要修改 HTML 範本以支援全螢幕。
object
andembed
標籤的allowFullScreen
特質必須設為true
。(產生內嵌 SWF 標籤的指令碼必須允許全螢幕)。 如需可供 Flash Builder 使用的樣本檔案,請參閱「探索 Flash Player 9 中的全螢幕模式」文件。 - 您的應用程式必須具備權限並可存取 FLV 視訊檔案。 在此範例中,我們假設 Flash 視訊 (FLV) 檔案與 SWF 檔案位於相同的目錄。
- 使用者必須允許存取全螢幕。
- 如需有關硬體縮放的詳細資訊,請參閱 Flash Player 的「探索 Flash Player 對高畫質 H.264 視訊和 AAC 音效的支援」文件。
FLV 檔案會使用 NetConnection 和 NetStream 物件載入。 由於 FLV 檔案位於 SWF 檔案所在的相同目錄中,而且將會透過 HTTP 連線,NetConnection.connect()
方法的參數會設為 null
。 NetConnection 物件 connect
會傳送叫用 netStatusHandler()
方法的 netStatus
事件,以報告其狀態報告。 netStatusHandler()
會檢查連線是否成功並叫用 connectStream()
方法,該方法會建立使用 NetConnection 物件做為參數的 NetStream 物件。 它也會建立視訊物件,並將 NetStream 物件附加至視訊物件。 接著,視訊物件會加入顯示清單,而串流也已設定且可進行播放。 由於 FLV 視訊檔案不包含中繼資料或提示點資訊,因此將會傳送 AsyncError
事件。 必須設定偵聽程式以處理事件。 此處的偵聽程式已設定完成且會忽略事件。 netStatus
事件的其它偵聽程式也已設定至 NetStream 物件。 如果找不到串流,便會顯示錯誤訊息。(請注意,netStatusHandler()
無法用來處理任何為串流或連線所回報的不同狀態資訊)。
可存取已載入 SWF 檔案之屬性與方法時,便會叫用 createMouseListener()
方法。 它會設定在舞台上按一下滑鼠時的事件偵聽程式。 toggleFullScreen()
會檢查顯示狀態為全螢幕或一般螢幕模式。 如果為一般螢幕,視訊物件的大小便會設為視訊串流的大小。 fullScreenSourceRect
的屬性會設為符合視訊物件維度的矩形。 接著,Stage.displayMode
屬性會設為全螢幕,這會延伸來源矩形中的視訊以填滿全螢幕區域。 如果符合系統需求,電腦上的圖形硬體將會用來增進全螢幕視訊運算的效能,而顯示狀態也會設為全螢幕模式。 將會使用 try...catch
,以捕捉切換至全螢幕模式時可能發生的任何錯誤。 (請注意,設定 fullScreenSourceRect
屬性後,顯示狀態必須設為全螢幕模式)。 在切換至一般螢幕模式前,視訊物件的寬度與高度設定必須設回至已儲存的原始視訊物件之寬度與高度。 否則,對全螢幕模式視訊物件所做的變更將會判斷寬度與高度。
package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.geom.Rectangle; public class Stage_fullScreenSourceRectExample2 extends Sprite { private var videoURL:String = "testVideo1.flv"; private var connection:NetConnection; private var stream:NetStream; private var myVideo:Video; private var savedWidth:uint; private var savedHeight:uint; public function Stage_fullScreenSourceRectExample2() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK, toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { if(stage.displayState == StageDisplayState.NORMAL) { myVideo.width = myVideo.videoWidth; myVideo.height = myVideo.videoHeight; try { stage.fullScreenSourceRect = new Rectangle(myVideo.x, myVideo.y, myVideo.width, myVideo.height); stage.displayState = StageDisplayState.FULL_SCREEN; } catch (e:SecurityError) { trace ("A security error occurred while switching to full screen: " + event); myVideo.width = savedWidth; myVideo.height = savedHeight; } }else { myVideo.width = savedWidth; myVideo.height = savedHeight; stage.displayState = StageDisplayState.NORMAL; } } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace ("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); myVideo = new Video(); myVideo.attachNetStream(stream); stream.play(videoURL); savedWidth = myVideo.width; savedHeight = myVideo.height; addChild(myVideo); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { } } }
fullScreenWidth | 屬性 |
fullScreenWidth:uint
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
傳回如果立即進入全螢幕狀態,將會使用的監視器寬度。 如果使用者有多部監視器,所用監視器是當時大部分舞台所在的監視器。
注意:從擷取值到進入全螢幕大小,這中間如果使用者有機會將瀏覽器移到其它監視器,這個值可能會不正確。 如果您在將 Stage.displayState
設定為 StageDisplayState.FULL_SCREEN
的事件處理常式中擷取值,這將是正確的值。
這是監視器的像素寬度,而且會與未來的舞台寬度相同,但 Stage.align
必須設定為 StageAlign.TOP_LEFT
,而且 Stage.scaleMode
必須設定為 StageScaleMode.NO_SCALE
。
實作
public function get fullScreenWidth():uint
相關 API 元素
fullScreenHeight
fullScreenSourceRect
scaleMode
StageDisplayState
flash.events.Event.RESIZE
flash.events.FullScreenEvent
範例 ( 如何使用本範例 )
enterFullScreen()
事件處理常式,它會設定 fullScreenSourceRect
屬性並進入全螢幕模式。 為了設定 fullScreenSourceRect
屬性,事件處理常式會從紅色方形的位置和大小開始。 接著,它會比較紅色方形的比例 (寬度除以高度) 與全螢幕寬度和高度時舞台的比例,使它能夠放大矩形 (fullScreenSourceRect
) 以符合螢幕的比例。 結果是紅色方形會從上到下佔滿監視器,但左右兩邊看得到綠色背景。 如果比例不相符,則左右兩邊會顯示舞台背景色彩 (預設為白色),而不是綠色背景。
注意:在瀏覽器中測試這個範例。 在 Flash「發佈設定」對話方塊的「HTML」索引標籤上,選取「僅限 Flash - 允許全螢幕」範本。指定 Flash Player 9.0.115.0 版,並確定已在「格式」索引標籤上選取 Flash 和 HTML 格式。然後發佈產生的 HTML 檔,並在瀏覽器中開啟。
import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
height | 屬性 |
height:Number
[覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會指出顯示物件的高度,以像素為單位。 此高度是根據顯示物件內容的範圍計算而得。 當您設定 height
屬性時,scaleY
屬性也會相應調整,如下列程式碼所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;
除了 TextField 和 Video 物件,無內容的顯示物件 (例如,空的 Sprite) 的高度為 0,即使您嘗試將 height
設定為其它值也是如此。
實作
override public function get height():Number
override public function set height(value:Number):void
擲回值
SecurityError — 參照 Stage 物件的 height 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
| |
IllegalOperationError — 不管呼叫物件是不是 Stage 擁有者 (主要 SWF 檔案),設定 Stage 物件的 height 屬性絕對不合法。
|
mouseChildren | 屬性 |
mouseChildren:Boolean
[覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。如果啟用某個物件,則使用者可以使用滑鼠或使用者輸入裝置,與其進行互動。預設值為 true
。
當您使用 Sprite 類別 (而不是使用 SimpleButton 類別) 來建立按鈕時,這個方法就會很有用。 當您使用 Sprite 實體來建立按鈕時,可以選擇使用 addChild()
方法加入額外的 Sprite 實體來裝飾按鈕。 此程序可能會造成未預期的滑鼠事件行為,因為當做子系加入的 Sprite 實體可能會在您預期父輩實體將成為目標物件時,成為滑鼠事件的目標物件。 為了確保父輩實體能夠當作滑鼠事件的目標物件來運作,可以將父輩實體的 mouseChildren
屬性設為 false
。
設定這個屬性不會傳送任何事件。 您必須使用 addEventListener()
方法來建立互動式功能。
實作
override public function get mouseChildren():Boolean
override public function set mouseChildren(value:Boolean):void
擲回值
SecurityError — 參照 Stage 物件的 mouseChildren 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
mouseLock | 屬性 |
mouseLock:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 11.2, AIR 3.2 |
設定為 true
可啟用滑鼠鎖定。啟用滑鼠鎖定會關閉游標,並允許使用未繫結的滑鼠移動方式。您只能在桌面應用程式的全螢幕模式中啟用滑鼠鎖定。若未在應用程式的全螢幕模式設定滑鼠鎖定,或是針對行動裝置上的應用程式設定滑鼠鎖定,都將擲回例外狀況。
出現下列情況時會自動停用滑鼠鎖定,並且再次顯示滑鼠游標:
- 使用者使用 Esc 鍵 (所有平台)、Control-W (Windows)、Command-W (Mac) 或 Alt-F4 (Windows) 結束全螢幕模式。
- 應用程式視窗失去焦點。
- 任何設定 UI 均為可見,包括所有隱私權對話方塊。
- 出現原生對話方塊,例如檔案上傳對話方塊。
結束全螢幕模式時,這個屬性會自動設定為 false
。
與滑鼠移動相關聯的事件 (例如 mouseMove
事件) 使用 MouseEvent 類別表示事件物件。當滑鼠鎖定停用時,請使用 MouseEvent.localX
和 MouseEvent.localY
屬性判斷滑鼠的位置。當滑鼠鎖定啟用時,請使用 MouseEvent.movementX
和 MouseEvent.movementY
屬性判斷滑鼠的位置。movementX
和 movementY
屬性包含自上次事件以來滑鼠位置的變更,而非滑鼠位置的絕對座標。
注意:當應用程式處於全螢幕模式時,不會傳送附加來顯示 Stage 以外物件的滑鼠事件偵聽程式。因此,若要在 mouseLock
為 true
時接收滑鼠 Delta 和任何其他滑鼠事件,請將滑鼠事件偵聽程式附加至 Stage 物件。
實作
public function get mouseLock():Boolean
public function set mouseLock(value:Boolean):void
相關 API 元素
nativeWindow | 屬性 |
nativeWindow:NativeWindow
[唯讀] 執行階段版本: | AIR 1.0, Flash Lite 4 |
內含此 Stage 之 NativeWindow 物件的參考。
此視窗代表原生作業系統視窗,而此 Stage 則代表此視窗包含的內容。只有在支援 NativeWindow 類別平台 AIR 中執行的內容,此屬性才會有效。在其他平台上,此屬性將會是 null
。在 Flash Player (在瀏覽器中執行的內容) 中,此屬性也將會是 null
。
實作
public function get nativeWindow():NativeWindow
numChildren | 屬性 |
numChildren:int
[唯讀] [覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
傳回此物件的子系數量。
實作
override public function get numChildren():int
擲回值
SecurityError — 參照 Stage 物件的 numChildren 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
orientation | 屬性 |
orientation:String
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
舞台目前的方向。這個屬性是設定成四個值的其中一個 (定義為 StageOrientation 類別中的常數):
StageOrientation constant | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 螢幕是位於預設方向 (正面朝上)。 |
StageOrientation.ROTATED_RIGHT | 螢幕向右旋轉。 |
StageOrientation.ROTATED_LEFT | 螢幕向左旋轉。 |
StageOrientation.UPSIDE_DOWN | 螢幕正面朝下。 |
StageOrientation.UNKNOWN | 應用程式尚未決定螢幕的起始方向。您可以為 orientationChange 事件新增事件偵聽程式 |
若要設定舞台方向,請使用 setOrientation()
方法。
重要:於 2.6 命名空間以後,Android 裝置已支援方向屬性。
實作
public function get orientation():String
相關 API 元素
quality | 屬性 |
quality:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
StageQuality 類別的值,可指定所使用的顯示品質。以下為有效值:
StageQuality.LOW
-- 低顯示品質。 圖形沒有消除鋸齒,而且點陣圖不是平滑狀,但執行階段仍然使用 mip 對應。StageQuality.MEDIUM
-- 一般顯示品質。 圖形使用 2 x 2 像素格點消除鋸齒,點陣圖平滑取決於Bitmap.smoothing
設定。執行階段使用 mip 對應。此設定適合用於未包含文字的影片。StageQuality.HIGH
-- 高顯示品質。 圖形使用 4 x 4 像素格點消除鋸齒,點陣圖平滑取決於Bitmap.smoothing
設定。執行階段使用 mip 對應。這是 Flash Player 所使用的預設顯示品質設定。StageQuality.BEST
-- 最高顯示品質。 圖形使用 4 x 4 像素格點取消鋸齒。如果Bitmap.smoothing
為true
,則執行階段使用高品質降幅演算法,可以產生較少的加工 (不過,使用StageQuality.BEST
並將Bitmap.smoothing
設定成true
會大幅減慢效能,所以不建議使用這樣的設定)。
高品質設定可產生較佳的縮放點陣圖。不過,高品質設定較耗費運算資源。特別是顯示縮放的影片時,使用高品質設定可能會降低影格速率。
BitmapData.draw()
方法會使用 Stage.quality
屬性的值。或者,您可以使用 BitmapData.drawWithQuality()
方法,如此,就能將 quality
參數指定給方法,以忽略 Stage.quality
的目前值。
在 Adobe AIR 的桌面描述檔中,quality
可以設定為 StageQuality.BEST
或 StageQuality.HIGH
(預設值為 StageQuality.HIGH
)。嘗試將它設定為其它值將沒有任何作用 (而且此屬性將不會改變)。在 AIR 的行動描述檔中,可以使用這四個品質設定。行動裝置上的預設值是 StageQuality.MEDIUM
。
針對在 Adobe AIR 中執行的內容,設定一個 Stage 物件的 quality
屬性將會變更所有 Stage 物件 (由其它 NativeWindow 物件所使用) 的顯示品質。
quality
屬性的影響。
實作
public function get quality():String
public function set quality(value:String):void
擲回值
SecurityError — 呼叫 Stage 物件的 quality 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
相關 API 元素
scaleMode | 屬性 |
scaleMode:String
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
來自 StageScaleMode 類別的數值可用來指定要使用哪個縮放模式。 以下為有效值:
StageScaleMode.EXACT_FIT
— 在指定區域內顯示完整 應用程式,但不嘗試保留原始比例。此時可能會發生扭曲,而且應用程式可能會以延伸或壓縮狀態顯示。StageScaleMode.SHOW_ALL
— 在指定區域內顯示完整應用程式,不會出現扭曲,同時維持應用程式的原始比例。應用程式的兩邊可能會出現邊框。StageScaleMode.NO_BORDER
-- 整個 應用程式會填滿指定的區域,不會出現扭曲,但可能會被裁切,同時維持應用程式的原始比例。StageScaleMode.NO_SCALE
-- 整個 應用程式是固定的,就算播放程式視窗大小變更,還是維持不變。如果播放程式視窗小於內容,則會發生裁切的現象。
實作
public function get scaleMode():String
public function set scaleMode(value:String):void
擲回值
SecurityError — 呼叫 Stage 物件的 scaleMode 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
相關 API 元素
showDefaultContextMenu | 屬性 |
showDefaultContextMenu:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
指定要顯示或隱藏 Flash 階段作業快顯選單中的預設項目。
如果 showDefaultContextMenu
屬性設定為 true
(預設值),則會顯示所有快顯選單項目。如果 showDefaultContextMenu
屬性設定為 false
,則僅會顯示「設定」與「關於 」選單項目。
實作
public function get showDefaultContextMenu():Boolean
public function set showDefaultContextMenu(value:Boolean):void
擲回值
SecurityError — 呼叫 Stage 物件的 showDefaultContextMenu 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
softKeyboardRect | 屬性 |
stage3Ds | 屬性 |
stageFocusRect | 屬性 |
stageFocusRect:Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定成為焦點的物件是否會顯示亮光邊框。
實作
public function get stageFocusRect():Boolean
public function set stageFocusRect(value:Boolean):void
擲回值
SecurityError — 呼叫 Stage 物件的 stageFocusRect 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
stageHeight | 屬性 |
stageHeight:int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定舞台的目前高度,以像素為單位。
當使用者調整視窗大小時,如果將 Stage.scaleMode
屬性的值設定為 StageScaleMode.NO_SCALE
,Stage 內容在 stageHeight
屬性變更以反映 SWF 檔佔用之螢幕區域的新高度期間,還是會維持原大小 (在其它縮放模式下,stageHeight
屬性固定會反映 SWF 檔的原始高度)。您可以新增 resize
事件的事件偵聽程式,然後再使用 Stage 類別的 stageHeight
屬性判斷已調整大小之 Flash 執行階段視窗的實際像素尺寸。當使用者調整視窗大小時,此事件偵聽程式可讓您控制螢幕內容的調整方式。
當您設定 stageHeight
屬性時,AIR for TV 裝置的行為會與桌上型電腦裝置略為不同。若 Stage.scaleMode
屬性設為 StageScaleMode.NO_SCALE
且您設定了 stageHeight
屬性,則直到 SWF 下一個影格才會變更舞台高度。
注意:在內含 SWF 檔的 HTML 網頁中,object
和 embed
標籤的 height
特質必須設定為百分比 (如 100%
) 而非像素。如果這些設定是由 JavaScript 程式碼產生,則 AC_FL_RunContent()
方法的 height
參數也必須設定為百分比。此百分比適用於 stageHeight
值。
實作
public function get stageHeight():int
public function set stageHeight(value:int):void
擲回值
SecurityError — 呼叫 Stage 物件的 stageHeight 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
相關 API 元素
stageVideos | 屬性 |
stageVideos:Vector.<StageVideo>
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.5, Flash Player 10.2 |
可用於播放外部視訊的 StageVideo 物件的清單。
您每次只能使用有限數目的 StageVideo 物件。當 SWF 開始執行時,可用的 StageVideo 物件數目取決於平台與可用的硬體。
若要使用 StageVideo 物件,請指派 stageVideos
Vector 物件的成員給 StageVideo 變數。
所有 StageVideo 物件皆會顯示在舞台上任何顯示物件之後。StageVideo 物件在舞台上顯示的順序,是根據它們在 stageVideos
Vector 物件中的順序。例如,若 stageVideos
Vector 物件包含三個項目:
- 在
stageVideos
Vector 物件 0 索引中的 StageVideo 物件,將會顯示在所有 StageVideo 物件之後。 - 位於索引 1 的 StageVideo 物件,將顯示在位於索引 0 的 StageVideo 物件之前。
- 位於索引 2 的 StageVideo 物件,將顯示在位於索引 1 的 StageVideo 物件之前。
請使用 StageVideo.depth
屬性來變更此順序。
注意:AIR for TV 裝置僅支援一個 StageVideo 物件。
實作
public function get stageVideos():Vector.<StageVideo>
相關 API 元素
範例 ( 如何使用本範例 )
var stageVideo:StageVideo; if ( stage.stageVideos.length >= 1 ) { stageVideo = stage.stageVideos[0]; }
stageWidth | 屬性 |
stageWidth:int
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定舞台的目前寬度,以像素為單位。
當使用者調整視窗大小時,如果將 Stage.scaleMode
屬性的值設定為 StageScaleMode.NO_SCALE
,Stage 內容在 stageWidth
屬性變更以反映 SWF 檔佔用之螢幕區域的新寬度期間,還是會維持原定義的大小 (在其它縮放模式下,stageWidth
屬性固定會反映 SWF 檔的原始寬度)。您可以新增 resize
事件的事件偵聽程式,然後再使用 Stage 類別的 stageWidth
屬性判斷已調整大小之 Flash 執行階段視窗的實際像素尺寸。當使用者調整視窗大小時,此事件偵聽程式可讓您控制螢幕內容的調整方式。
當您設定 stageWidth
屬性時,AIR for TV 裝置的行為會與桌上型電腦裝置略為不同。若 Stage.scaleMode
屬性設為 StageScaleMode.NO_SCALE
且您設定了 stageWidth
屬性,則直到 SWF 下一個影格才會變更舞台寬度。
注意:在內含 SWF 檔的 HTML 網頁中,object
和 embed
標籤的 width
特質必須設定為百分比 (如 100%
) 而非像素。如果這些設定是由 JavaScript 程式碼產生,則 AC_FL_RunContent()
方法的 width
參數也必須設定為百分比。此百分比適用於 stageWidth
值。
實作
public function get stageWidth():int
public function set stageWidth(value:int):void
擲回值
SecurityError — 呼叫 Stage 物件的 stageWidth 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
相關 API 元素
supportedOrientations | 屬性 |
supportedOrientations:Vector.<String>
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.6 |
目前裝置支援的方向。
您可以使用此清單中的方向字串,做為 setOrientation()
方法的參數。設定不支援的方向失敗,沒有錯誤。
可能的方向包括:
StageOrientation constant | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 將舞台方向設定成預設方向 (正面朝上)。 |
StageOrientation.ROTATED_RIGHT | 將舞台方向設定成往右旋轉。 |
StageOrientation.ROTATED_LEFT | 將舞台方向設定成往左旋轉。 |
StageOrientation.UPSIDE_DOWN | 將舞台方向設定成正面朝下。 |
實作
public function get supportedOrientations():Vector.<String>
相關 API 元素
supportsOrientationChange | 屬性 |
tabChildren | 屬性 |
tabChildren:Boolean
[覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
判斷物件的子系是否支援啟用定位鍵。 啟用或停用物件子系的定位鍵。 預設值為 true
。
注意:請勿將 tabChildren
屬性與 Flex 一起使用。請改為使用 mx.core.UIComponent.hasFocusableChildren
屬性。
實作
override public function get tabChildren():Boolean
override public function set tabChildren(value:Boolean):void
擲回值
SecurityError — 參照 Stage 物件的 tabChildren 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
textSnapshot | 屬性 |
textSnapshot:flash.text:TextSnapshot
[唯讀] [覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。
實作
override public function get textSnapshot():flash.text:TextSnapshot
擲回值
IllegalOperationError — 參照 Stage 物件的 textSnapshot 屬性會擲出例外,因為 Stage 類別無法實作此屬性。 為了避免這個情況發生,請呼叫顯示物件容器 (而不是 Stage 物件) 的 textSnapshot 屬性。
|
vsyncEnabled | 屬性 |
width | 屬性 |
width:Number
[覆寫] 語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會指出顯示物件的寬度,以像素為單位。 此寬度是根據顯示物件內容的範圍計算而得。 當您設定 width
屬性時,scaleX
屬性也會相應調整,如下列程式碼所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;
除了 TextField 和 Video 物件,無內容的顯示物件 (例如,空的 Sprite) 的寬度為 0,即使您嘗試將 width
設定為其它值也是如此。
實作
override public function get width():Number
override public function set width(value:Number):void
擲回值
SecurityError — 參照 Stage 物件的 width 屬性會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
| |
IllegalOperationError — 不管您是不是 Stage 擁有者,設定 Stage 物件的 width 屬性絕對不合法。
|
wmodeGPU | 屬性 |
wmodeGPU:Boolean
[唯讀] 語言版本: | ActionScript 3.0 |
執行階段版本: | Flash Player 10.0.32, AIR 1.5.2, Flash Lite 4 |
指出是否提供以及可以使用 GPU 調整。「只有」以下三個條件都成立時,wmodeGPU
值才會是 true
。
- 已要求 GPU 複合。
- 可以使用 GPU 複合。
- GPU 複合未使用中。
特別是,wmodeGPU
屬性會指示以下其中一項:
- 已經要求或無法取得 GPU 複合。在這種情況下,
wmodeGPU
屬性值為false
。 - 已經要求 GPU 複合 (如果可以取得和使用),不過由於內容的限制,環境是在「後援模式」(不是最佳顯示) 中運作。在這種情況下,
wmodeGPU
屬性值為true
。 - 已經要求 GPU 複合 (如果可以取得和使用),而且環境是在最佳模式下運作。在這種情況下,
wmodeGPU
屬性值也是true
。
換言之,wmodeGPU
屬性會識別演算環境的能力與狀態。至於不支援 GPU 複合的執行階段,例如 AIR 1.5.2,值永遠為 false
,因為只有要求 GPU 複合而且可以取得並在使用中,(如上述),值才是 true
。
wmodeGPU
屬性有助於在執行階段判斷 GPU 複合是否在使用中。wmodeGPU
的值指出是否您的內容即將被硬體調整比例,或者不被調整比例,這樣您才可以呈現大小正確的圖形。您也可以判斷是否使用快速路徑進行顯示,這樣您才可以順便調整自己的內容複雜度。
對於在瀏覽器中的 Flash Player,在代管理 SWF 檔案的網頁中,wmode
HTML 參數的 gpu
值可以要求 GPU 複合。至於其他組態,可以在 SWF 的標頭中要求 GPU 複合 (使用 SWF 創作工具來設定)。
不過,wmodeGPU
屬性不會識別目前的顯示效能。即使 GPU 複合是在「使用中」,顯示程序可能不會在最佳模式中操作。若要調整內容,以便進行最佳的顯示,請使用 Flash 執行階段除錯程式,並在您的 mm.cfg 檔案中設定 DisplayGPUBlendsetting
。
注意:從執行階段第一次執行顯示通道 (render pass) 之前執行的 ActionScript 進行參考時,此屬性永遠為 false
。例如,如果您從 Adobe Flash Professional 的影格 1 指令碼檢查 wmodeGPU
時,而且您的 SWF 檔案是在執行階段新實體中第一個載入,則 wmodeGPU
值為 false
。若要取得正確的值,請至少等候一個顯示通道 (render pass)已經進行。如果您為任何 DisplayObject
的 exitFrame
事件編寫事件偵聽程式,則 wmodeGPU
值為正確的值。
實作
public function get wmodeGPU():Boolean
相關 API 元素
範例 ( 如何使用本範例 )
wmodeGPU
屬性,這樣您就可以取得正確的值。
mySprite.addEventListener(EXIT_FRAME, exithandler): function exithandler(exiteventobject:Event):void { trace(stage.wmodeGPU); }
addChild | () | 方法 |
override public function addChild(child:DisplayObject):DisplayObject
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 此子系會加入到此 DisplayObjectContainer 實體中所有其它子系的前面 (上層)。(若要將子系加入至特定的索引位置,請使用 addChildAt()
方法)。
如果您加入一個已經包含不同顯示物件容器的子物件做為父物件,則物件會從其它顯示物件容器的子清單中移除。
注意:命令 stage.addChild()
會導致發佈的 SWF 檔案發生問題,包括安全性問題以及與其他載入 SWF 檔案的衝突。無論您載入多少 SWF 檔案到執行階段中 ,Flash 執行階段實體中只會有一個舞台。因此,在一般情況下不該將物件直接新增至舞台。舞台唯一該包含的物件就是根物件。建立一個 DisplayObjectContainer 來包含顯示清單中的所有項目。然後,視需要將 DisplayObjectContainer 新增至舞台。
參數
child:DisplayObject — 要新增做為此 DisplayObjectContainer 實體子系的 DisplayObject 實體。
|
DisplayObject — 您傳遞至 child 參數的 DisplayObject 實體。
|
擲回值
SecurityError — 呼叫 Stage 物件的 addChild() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
addChildAt | () | 方法 |
override public function addChildAt(child:DisplayObject, index:int):DisplayObject
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。 子系會加入至指定的索引位置。 0 的索引代表位於此 DisplayObjectContainer 物件的顯示清單後面 (下層)。
例如,下列範例將說明三個加上 a、b 與 c 標籤的顯示物件,分別位於 0、2 與 1 的索引位置:
如果您加入一個已經包含不同顯示物件容器的子物件做為父物件,則物件會從其它顯示物件容器的子清單中移除。
參數
child:DisplayObject — 要新增做為此 DisplayObjectContainer 實體子系的 DisplayObject 實體。
| |
index:int — 子實體加入所在的索引位置。 如果您指定一個目前已佔用的索引位置,則存在該位置與所有更上層位置的子物件都會由原本的子清單位置往上移動一個位置。
|
DisplayObject — 您傳遞至 child 參數的 DisplayObject 實體。
|
擲回值
SecurityError — 呼叫 Stage 物件的 addChildAt() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
addEventListener | () | 方法 |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。您可以在顯示清單上的所有節點,為特定類型的事件、階段與優先順序註冊事件偵聽程式。
當您成功註冊事件偵聽程式後,就不可以透過對 addEventListener()
的額外呼叫來變更其優先順序。 若要變更偵聽程式的優先順序,您必須先呼叫 removeListener()
。 然後,您就可以使用新的優先順序等級來重新註冊偵聽程式。
請記住,一旦您註冊了偵聽程式,對 addEventListener()
進行後續呼叫,若使用不同的 type
或 useCapture
值,將會導致建立個別的偵聽程式註冊程序。 例如,如果您先將 useCapture
設為 true
來註冊偵聽程式,則只會在捕捉階段進行偵聽。 如果您使用相同的偵聽程式物件,再次呼叫 addEventListener()
(但將 useCapture
設為 false
) 會得到兩個不同的偵聽程式: 一個會在捕捉階段進行偵聽,另一個則會在目標與反昇階段進行偵聽。
您無法單獨針對目標階段或反昇階段註冊事件偵聽程式。 由於反昇階段只適用於目標節點的祖系,因此這兩種階段必須一起進行註冊。
如果您不再需要事件偵聽程式,可以呼叫 removeEventListener()
來移除它,否則可能產生記憶體問題。 事件偵聽程式不會自動從記憶體中移除,因為只要傳送的物件存在,垃圾回收器就不會移除偵聽程式 (除非 useWeakReference
參數設定為 true
)。
複製 EventDispatcher 實體並不會將附加在該實體上的事件偵聽程式一併複製 (如果新建立的節點需要事件偵聽程式,則您必須在建立節點後再附加偵聽程式)。 然而,如果您移動了 EventDispatcher 實體,則附加的事件偵聽程式也會跟著移動。
若於此節點正在處理事件的同時將事件偵聽程式註冊到某個節點上,則事件偵聽程式不會在目前階段觸發,但會在事件流程的後續階段 (例如反昇階段) 中觸發。
如果您在節點正在處理事件的同時將事件偵聽程式從節點中移除,則事件偵聽程式還是會被目前的動作觸發。 一旦移除了事件偵聽程式,就無法再叫用它 (除非您為了日後的處理而再次註冊它)。
參數
type:String — 事件類型。
| |
listener:Function — 處理事件的偵聽程式函數。此函數必須接受 Event 物件並當做唯一的參數,而且必須傳回空值,如下列範例所示:
function(evt:Event):void 函數可以具有任何名稱。 | |
useCapture:Boolean (default = false ) —
判斷偵聽程式是否可在捕捉階段或目標與反昇階段運作。如果 useCapture 設為 true ,則偵聽程式只會在捕捉階段 (而不是在目標或反昇階段) 處理事件。如果 useCapture 為 false ,則偵聽程式只會在目標或反昇階段處理事件。若要在全部三個階段中偵聽事件,請呼叫 addEventListener 兩次,先將 useCapture 設為 true 進行第一次呼叫,再將 useCapture 設為 false 進行第二次呼叫。
| |
priority:int (default = 0 ) — 事件偵聽程式的優先順序等級。優先順序是由一個具有正負號的 32 位元整數所指定。 數字越大,代表優先順序越高。所有優先順序為 n 的偵聽程式都會比優先順序為 n -1 的偵聽程式優先處理。 如果有兩個以上的偵聽程式共用同一個優先順序,則會依據加入的先後次序來處理。預設的優先順序為 0。
| |
useWeakReference:Boolean (default = false ) — 判斷偵聽程式的參照為強或弱。強參照 (預設) 會避免偵聽程式被垃圾回收器從記憶體中移除, 弱參照則無法避免這個情況發生。 類別層級的成員函數不受記憶體回收限制,因此您可以將類別層級成員函數的 |
擲回值
SecurityError — 呼叫 Stage 物件的 addEventListener 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
assignFocus | () | 方法 |
public function assignFocus(objectToFocus:InteractiveObject, direction:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0 |
您可以將鍵盤焦點設定至 objectToFocus
指定的互動式物件,並搭配 direction
參數指定焦點方向。
焦點方向的概念必須由應用程式 (或應用程式架構) 加以定義。雖然沒有內建互動式物件的焦點排序方式,您還是可以透過其它可用的屬性來建立制定順序的原則。例如,您可以根據各個互動式物件在舞台或顯示清單中的位置來加以排序。呼叫 assignFocus()
等同於設定 Stage.focus
屬性,都可以另外指定焦點設定的方向。
接收到焦點時,objectToFocus
將傳送 focusIn
事件。FocusEvent 物件的 direction
屬性將會報告 direction
參數的設定。
如果您將 HTMLLoader 物件指派給 objectToFocus
參數,則 HTMLLoader 物件會依據 direction
參數值,在 HTML DOM 中選取可取得焦點的適當物件。 如果此物件是 FocusDirection.BOTTOM
,則位於讀取順序末尾之 HTML DOM 中的可取得焦點物件就會獲得焦點。如果此物件是 FocusDirection.TOP
,則位於讀取順序開頭之 HTML DOM 中的可取得焦點物件就會獲得焦點。如果此物件是 NONE
,則 HTMLLoader 物件就會接收焦點,而不用變更其目前成為焦點的元素。
參數
objectToFocus:InteractiveObject — 要設定焦點的物件,或以 null 表示清除舞台上所有元素的焦點。
| |
direction:String — objectToFocus 取得焦點的來源方向。有效值在 FocusDirection 類別中列舉為常數。
|
擲回值
Error — 如果無法將焦點設定至目標或方向並非有效的類型。
|
相關 API 元素
dispatchEvent | () | 方法 |
override public function dispatchEvent(event:Event):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會將事件傳送到事件流程。事件目標就是呼叫 dispatchEvent()
方法時所需的 EventDispatcher 物件。
參數
event:Event — 傳送至事件流程中的 Event 物件。 如果重新傳送事件,會自動建立事件副本。 一旦傳送了事件,就無法變更其 target 屬性,因此您必須建立事件的新副本,重新傳送才能成功。
|
Boolean — 如果成功傳送事件,則為 true 值。 false 值代表失敗,或是事件已經呼叫 preventDefault() 。
|
擲回值
SecurityError — 呼叫 Stage 物件的 dispatchEvent() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
hasEventListener | () | 方法 |
override public function hasEventListener(type:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 這可讓您判斷 EventDispatcher 物件是否已經改變事件流程階層中事件類型的處理方式。 若要判斷特定事件類型是否已經實際觸發事件偵聽程式,請使用 willTrigger()
。
hasEventListener()
與 willTrigger()
之間的差異在於 hasEventListener()
只檢查所屬的物件,而 willTrigger()
則會檢查整個事件流程中 type
參數所指定的事件。
從 LoaderInfo 物件呼叫 hasEventListener()
時,只會考量呼叫者可以存取的偵聽程式。
參數
type:String — 事件類型。
|
Boolean — 如果註冊了特定類型的偵聽程式,則值為 true 值,否則為 false 。
|
擲回值
SecurityError — 呼叫 Stage 物件的 hasEventListener() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
invalidate | () | 方法 |
public function invalidate():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
呼叫 invalidate()
方法會發出訊號給 Flash 執行階段,要 Flash 執行階段在下次將顯示清單顯示出來時警告顯示物件 (例如,當播放磁頭進入到新的影格)。一旦您呼叫了 invalidate()
方法,顯示清單就會接著顯示出來,而 Flash 執行階段也會將 render
事件傳送至每個註冊要偵聽 render
事件的顯示物件。每次當您需要 Flash 執行階段傳送 render
事件時,就必須呼叫 invalidate()
方法。
render
事件提供您一個機會,讓您可以在顯示清單實際顯示出來之前,立即進行變更。 這樣一來,您就可以將顯示清單的更新動作延緩到最後一次作業。 這樣可減少不必要的螢幕更新動作,效能也會因此獲得提升。
render
事件只會傳送至與呼叫 stage.invalidate()
方法的程式碼位於相同安全性網域的顯示物件,或者傳送至已經透過 Security.allowDomain()
方法取得權限的安全性網域的顯示物件。
相關 API 元素
isFocusInaccessible | () | 方法 |
removeChildAt | () | 方法 |
override public function removeChildAt(index:int):DisplayObject
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
從 DisplayObjectContainer 子清單中的指定 index
位置移除子 DisplayObject。 移除的子系 parent
屬性是設為 null
,而且如果子系沒有其它參照,物件就會被垃圾回收器移除。 任何位於 DisplayObjectContainer 子系上層的顯示物件,其索引位置會減掉 1。
垃圾回收器會重新分配未使用的記憶體空間。當變數或物件不再被參照使用,或是已經儲存至其它位置,則垃圾回收器會對記憶體空間進行清掃,掃除變數或物件之前佔用但已經沒有任何參照的記憶體空間。
參數
index:int — 要移除的 DisplayObject 子索引。
|
DisplayObject — 已移除的 DisplayObject 實體。
|
擲回值
SecurityError — 呼叫 Stage 物件的 removeChildAt() 方法會擲出例外給與要移除的物件位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,該物件的擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
setAspectRatio | () | 方法 |
public function setAspectRatio(newAspectRatio:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
將舞台設定為具有指定外觀比例的方向。
若方法呼叫導致舞台方向變更,Stage 物件將會傳送 orientationChange 事件。
若要檢查是否支援裝置,請檢查 Stage.supportsOrientantionChange
屬性的值。
AIR 描述檔支援:行動裝置支援此項功能,但桌上型電腦作業系統或 AIR for TV 裝置不支援。您可以使用 Stage.supportsOrientantionChange
屬性測試執行階段的支援狀況。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
參數
newAspectRatio:String — 所要外觀比例的類型代碼 (StageAspectRatio.PORTRAIT 、StageAspectRatio.LANDSCAPE 或 StageAspectRatio.ANY )。
|
擲回值
ArgumentError — 為 newAspectRatio 參數傳送的值無效。此值必須符合 StageAspectRatio 類別中定義的常數之一。
|
相關 API 元素
setChildIndex | () | 方法 |
override public function setChildIndex(child:DisplayObject, index:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
變更顯示物件容器中現有子系的位置。 這樣會影響子物件的圖層。 例如,下列範例說明三個加上 a、b 與 c 標籤的顯示物件,分別位於 0、1 與 2 的索引位置:
當您使用 setChildIndex()
方法並指定已遭佔用的索引位置時,變更的位置只會介於顯示物件之前的位置和新位置之間,其它所有位置將維持不變。如果將子系移至比本身目前索引還「低」的索引位置,則兩者之間所有子系的索引參考都將「遞增」1。如果將子系移至比本身目前索引還「高」的索引位置,則兩者之間所有子系的索引參考都將「遞減」1。例如,如果上一個範例中的顯示物件容器名為 container
,則您可以呼叫下列程式碼來切換加上 a 與 b 標籤的顯示物件位置:
container.setChildIndex(container.getChildAt(1), 0);
這個程式碼會產生如下所示的物件排列:
參數
child:DisplayObject — 您要變更索引編號的 DisplayObject 子實體。
| |
index:int — 產生的 child 顯示物件索引編號。
|
擲回值
SecurityError — 呼叫 Stage 物件的 setChildIndex() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
setOrientation | () | 方法 |
public function setOrientation(newOrientation:String):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
將舞台設定為指定的方向。
將 newOrientation
參數設定成以下四個值其中一個 (在 StageOrientation 類別中定義成常數):
StageOrientation constant | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 將舞台方向設定成預設方向 (正面朝上)。 |
StageOrientation.ROTATED_RIGHT | 將舞台方向設定成往右旋轉。 |
StageOrientation.ROTATED_LEFT | 將舞台方向設定成往左旋轉。 |
StageOrientation.UPSIDE_DOWN | 將舞台方向設定成正面朝下。 |
不要將參數設定成 StageOrientation.UNKNOWN
或者表格中任何未列出的字串值。
若要檢查是否支援變更裝置方向,請檢查 Stage.supportsOrientantionChange
屬性的值。檢查 supportedOrientations
屬性提供的清單,以判斷目前的裝置支援哪些方向。
設定方向是非同步的作業。在呼叫 setOrientation()
方法後,並不保證會立即完成。為 orientationChange
事件新增事件偵聽程式,以判斷方向變更何時完成。
重要:在 AIR 2.6 之前,Android 裝置不支援 setOrientation()
方法。
setOrientation()
方法並不會造成 orientationChanging
事件的傳送。
參數
newOrientation:String — 舞台的新方向。
|
事件
orientationChange: — setOrientation() 方法呼叫後,已調整舞台的大小。
|
擲回值
ArgumentError — 為 newOrientation 參數傳送的值無效。值必須符合 StageOriention 類別中定義的常數之一,但不包括 StageOrientation.UNKNOWN 常數。
|
相關 API 元素
swapChildrenAt | () | 方法 |
override public function swapChildrenAt(index1:int, index2:int):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。顯示物件容器中的所有其它子物件都會保留在相同的索引位置。
參數
index1:int — 第一個子物件的索引位置。
| |
index2:int — 第二個子物件的索引位置。
|
擲回值
SecurityError — 呼叫 Stage 物件的 swapChildrenAt() 方法會擲出例外給與要切換的任何一個物件擁有者位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,物件擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
willTrigger | () | 方法 |
override public function willTrigger(type:String):Boolean
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。當特定類型的事件傳送至此 EventDispatcher 物件或其任何後代時,如果事件偵聽程式在事件流程的任何階段觸發,此方法就會傳回 true
。
hasEventListener()
與 willTrigger()
方法之間的差異在於 hasEventListener()
只檢查所屬的物件,而 willTrigger()
則會檢查整個事件流程中 type
參數所指定的事件。
從 LoaderInfo 物件呼叫 willTrigger()
時,只會考量呼叫者可以存取的偵聽程式。
參數
type:String — 事件類型。
|
Boolean — 如果即將觸發特定類型的偵聽程式,則為 true 值,否則為 false 。
|
擲回值
SecurityError — 呼叫 Stage 物件的 willTrigger() 方法會擲出例外給與 Stage 擁有者 (主要 SWF 檔案) 位於不同安全執行程序的任何呼叫者。 為了避免這個情況發生,Stage 擁有者可以呼叫 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法,將權限授與呼叫者的網域。 如需詳細資訊,請參閱「ActionScript 3.0 開發人員指南」中的「安全性」一章。
|
browserZoomChange | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.BROWSER_ZOOM_CHANGE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 15 |
當 Stage 物件的 browserZoomFactor
屬性變更時傳送。
Event.BROWSER_ZOOM_CHANGE
常數會定義 browserZoomChange
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | Stage 實體。 |
fullScreen | 事件 |
flash.events.FullScreenEvent
屬性 FullScreenEvent.type =
flash.events.FullScreenEvent.FULL_SCREEN
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
當 Stage 物件進入 (或離開) 全螢幕模式時傳送。在全螢幕模式中所做的變更可以透過 ActionScript、或是使用者叫用鍵盤快速鍵,或者當目前的焦點離開全螢幕視窗時加以初始化。
FullScreenEvent.FULL_SCREEN
常數會定義 fullScreen
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
fullScreen | 如果顯示狀態為 full screen 則為true ,如果為 normal 則為 false 。 |
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | Stage 物件。 |
mouseLeave | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.MOUSE_LEAVE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
當指標移到舞台區域外時,由 Stage 物件傳送。如果按下滑鼠按鈕,就不會傳送這個事件。
Event.MOUSE_LEAVE
常數會定義 mouseLeave
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | Stage 物件。 target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
orientationChange | 事件 |
flash.events.StageOrientationEvent
屬性 StageOrientationEvent.type =
flash.events.StageOrientationEvent.ORIENTATION_CHANGE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
舞台方向變更時,會由 Stage 物件傳送。
當使用者旋轉裝置、開啟滑蓋式鍵盤,或呼叫 setAspectRatio()
時,就會變更方向。
注意:如果 autoOrients
屬性為 false
,則當裝置旋轉時,舞台方向不會改變。因此,若 autoOrients
為 true
,StageOrientationEvents 只會在裝置旋轉時傳送。
ORIENTATION_CHANGE
常數會定義 orientationChange
事件物件的 type
屬性值。這個事件具有下列屬性:
屬性 | 值 |
---|---|
afterOrientation | 舞台的新方向。 |
beforeOrientation | 舞台的舊方向。 |
target | 傳送方向變更的 Stage 物件。 |
bubbles | true |
currentTarget | 指出主動使用事件偵聽程式處理 Event 物件的物件。 |
cancelable | false ;已無法取消變更。 |
orientationChanging | 事件 |
flash.events.StageOrientationEvent
屬性 StageOrientationEvent.type =
flash.events.StageOrientationEvent.ORIENTATION_CHANGING
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
舞台方向開始變更時,會由 Stage 物件傳送。
重要:Android 裝置不會傳送 orientationChanging 事件。
注意:
-
如果
autoOrients
屬性為false
,則當裝置旋轉時,舞台方向不會改變。因此,若autoOrients
為true
,StageOrientationEvents 只會在裝置旋轉時傳送。 -
當您使用
setOrientation()
方法以程式的設計方式設定方向時,不會傳送orientationChanging
事件。
ORIENTATION_CHANGING
常數會定義 orientationChanging
事件物件的 type
屬性值。這個事件具有下列屬性:
屬性 | 值 |
---|---|
afterOrientation | 舞台的新方向。 |
beforeOrientation | 舞台的舊方向。 |
target | 傳送方向變更的 Stage 物件。 |
bubbles | true |
currentTarget | 指出主動使用事件偵聽程式處理 Event 物件的物件。 |
cancelable | true 。 |
resize | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.RESIZE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
當 Stage 物件的 scaleMode
屬性設為 StageScaleMode.NO_SCALE
並重新調整 SWF 檔案大小時傳送。此外,若以全螢幕模式使用 Flash Player 15 和更高版本,螢幕方向變更時也會傳送。
Event.RESIZE
常數會定義 resize
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | Stage 物件。 |
stageVideoAvailability | 事件 |
flash.events.StageVideoAvailabilityEvent
屬性 StageVideoAvailabilityEvent.type =
flash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 10.2 |
當 stageVideos 屬性的狀態變更時,會由 Stage 物件傳送。
定義stageVideoAvailability
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
availability | 此事件報告的狀態。 |
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 主動處理 Event 的物件。 |
target | 報告舞台視訊可用性的 Stage 物件。 |
範例 ( 如何使用本範例 )
StageExample
類別,在啟動或重新調整舞台大小時來傳送事件。 您可以執行下列步驟來完成這項工作:
- 此類別首先會設定要修復的 Flash 應用程式 (無論 Flash Player 視窗的大小為何),然後加入含有
activateHandler()
和resizeHandler()
方法的兩個事件偵聽程式。 activateHandler()
方法會在按下滑鼠左鍵時執行。resizeHandler()
方法會在重新調整舞台大小時執行。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class StageExample extends Sprite { public function StageExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.ACTIVATE, activateHandler); stage.addEventListener(Event.RESIZE, resizeHandler); } private function activateHandler(event:Event):void { trace("activateHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); } } }
VsyncStateChangeAvailability | 事件 |
flash.events.VsyncStateChangeAvailabilityEvent
屬性 VsyncStateChangeAvailabilityEvent.type =
flash.events.VsyncStateChangeAvailabilityEvent
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 29.0 |
當 vsync 屬性的狀態變更時,會由 Stage 物件傳送。
定義 VsyncStateChangeAvailabilityEvent
事件物件的類型屬性值。
範例 ( 如何使用本範例 )
VsyncExample
類別來傳送事件,而舞台的 vsync 狀態可以是啟用或停用。您可以執行下列步驟來完成這項工作:
- 建構函式會先觸發舞台事件
VsyncStateChangeAvailabilityEvent
- 接著呼叫方法
onVsyncStateChangeAvailability
,以檢查VsyncStateChangeAvailabilityEvent
是否可用。 - 除非有項目可切換舞台的 vsync 狀態,否則
vsyncEnable
屬性的值會保持唯讀。 - 只在觸發事件時,才能觸發啟用 vsync 的值。
package { import flash.display.Sprite; import flash.events.VsyncStateChangeAvailabilityEvent public class VsyncExample extends Sprite { public function VsyncExample() { stage.addEventListener(VsyncStateChangeAvailabilityEvent.VSYNC_STATE_CHANGE_AVAILABILITY, onVsyncStateChangeAvailability); } public function onVsyncStateChangeAvailability(event:VsyncStateChangeAvailabilityEvent):void { if (event.available) { // vsyncEnabled is now changeable and can be turned off. stage.vsyncEnabled = false; // Now, AS can change VSYNC state because event.available is true trace("vsyncEnabled of Stage object is changeable"); } else { // vsyncEnabled is not changeable now. This could be due to fallback to software rendering, for example. stage.vsyncEnabled = false; // This will be ignored because event.available is now false trace("vsyncEnabled of Stage object is read-only"); trace("Current value of vsyncEnabled of Stage object is "+ stage.vsyncEnabled); } } } }
Tue Jun 12 2018, 03:47 PM Z