編寫 AIR for TV 應用程式時,請在使用 Stage 類別時注意下列幾點:
-
螢幕解析度
-
安全檢視區域
-
舞台縮放模式
-
舞台對齊方式
-
舞台顯示狀態
-
針對多種螢幕大小進行設計
-
舞台品質設定
螢幕解析度
目前電視裝置通常有這幾種螢幕解析度:540p、720p 及 1080p。這些螢幕解析度會在 ActionScript Capabilities 類別中產生下列值:
螢幕解析度
|
Capabilities.screenResolutionX
|
Capabilities.screenResolutionY
|
540p
|
960
|
540
|
720p
|
1280
|
720
|
1080p
|
1920
|
1080
|
若要針對特定裝置撰寫全螢幕的 AIR for TV 應用程式,請將
Stage.stageWidth
和
Stage.stageHeight
明確設為裝置的螢幕解析度。不過,若要撰寫在多個裝置上執行的全螢幕應用程式,請使用
Capabilities.screenResolutionX
和
Capabilities.screenResolutionY
屬性來設定舞台尺寸。
例如:
stage.stageWidth = Capabilities.screenResolutionX;
stage.stageHeight = Capabilities.screenResolutionY;
安全檢視區域
電視上的安全檢視區域是指離螢幕邊緣有段內移距離的螢幕區域。此區域的內移距夠遠,讓使用者可以看見整個區域,而不會被電視邊框遮住任何部分。因為各家製造商的邊框 (螢幕周圍的實體外框) 不相同,必要的內移距也會不同。安全檢視區域的存在,是要確保有一塊絕對看得見的螢幕區域。安全檢視區域又稱為「標題安全區域」。
超出掃描區域是指被邊框遮住而看不見的螢幕區域。
Adobe 建議螢幕四邊的內移距都是 7.5%。例如:
設計全螢幕的 AIR for TV 應用程式時,請務必考量安全檢視區域:
下表顯示各常見螢幕解析度的安全檢視區域尺寸 (使用內移距 7.5%)。
螢幕解析度
|
安全檢視區域的寬度和高度
|
左右方內移距寬度
|
上下方內移距高度
|
960 x 540
|
816 x 460
|
72
|
40
|
1280 x 720
|
1088 x 612
|
96
|
54
|
1920 x 1080
|
1632 x 918
|
144
|
81
|
不過,最佳作法是一律動態計算安全檢視區域。例如:
var horizontalInset, verticalInset, safeAreaWidth, safeAreaHeight:int;
horizontalInset = .075 * Capabilities.screenResolutionX;
verticalInset = .075 * Capabilities.screenResolutionY;
safeAreaWidth = Capabilities.screenResolutionX - (2 * horizontalInset);
safeAreaHeight = Capabilities.screenResolutionY - (2 * verticalInset);
舞台縮放模式
將
Stage.scaleMod
設為
StageScaleMode.NO_SCALE
,然後偵聽舞台調整大小事件。
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, layoutHandler);
此設定會使得舞台座標就是像素座標。搭配
FULL_SCREEN_INTERACTIVE
顯示狀態和
TOP_LEFT
舞台對齊方式,此設定可讓您有效地使用安全檢視區域。
具體而言,在全螢幕應用程式中,此縮放模式表示 Stage 類別的
stageWidth
和
stageHeight
屬性會對應於 Capabilities 類別的
screenResolutionX
和
screenResolutionY
屬性。
此外,當應用程式的視窗改變大小時,舞台內容仍會保持原本定義的大小。執行階段不會自動進行版面或縮放調整。另外,當視窗改變大小時,執行階段會傳送 Stage 類別的
resize
事件。因此,當應用程式開始時和應用程式視窗調整大小時,您完全可以控制調整應用程式內容的方式。
備註:
NO_SCALE
行為在任何 AIR 應用程式中都相同。不過,在 AIR for TV 應用程式中,使用此設定對於使用安全檢視區域而言十分重要。
舞台對齊方式
將
Stage.align
設為
StageAlign.TOP_LEFT
:
stage.align = StageAlign.TOP_LEFT;
此對齊方式將螢幕左上角定為
0,0
座標,以便使用 ActionScript 來放置內容。
搭配
NO_SCALE
縮放模式和
FULL_SCREEN_INTERACTIVE
顯示狀態,此設定可讓您有效地使用安全檢視區域。
舞台顯示狀態
將全螢幕 AIR for TV 應用程式中的
Stage.displayState
設為
StageDisplayState.FULL_SCREEN_INTERACTIVE
:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
此值會設定 AIR 應用程式將舞台展開佈滿整個螢幕,並允許使用者輸入。
Adobe 建議使用
FULL_SCREEN_INTERACTIVE
設定。搭配
NO_SCALE
縮放模式和
TOP_LEFT
舞台對齊方式,此設定可讓您有效地使用安全檢視區域。
因此,對於全螢幕應用程式,請在主要文件類別上
ADDED_TO_STAGE
事件的處理常式中執行下列動作:
private function onStage(evt:Event):void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onResize);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
}
然後,在
RESIZE
事件的處理常式中:
private function onResize(evt:Event):void
{
if ((Capabilities.screenResolutionX == stage.stageWidth) &&
(Capabilities.screenResolutionY == stage.stageHeight))
{
// Calculate and save safe viewing area dimensions.
}
}
當舞台尺寸等於
Capabilities.screenResolutionX
和
screenResolutionY
時,AIR for TV 會使硬體為您的視訊和圖形傳遞最佳的真實度。
備註:
Capabilities.screenResolutionX
和
screenResolutionY
值而有所不同,那兩個值取決於執行 AIR for TV 的裝置。例如,執行 AIR for TV 的機上盒螢幕解析度為 1280 x 720,而第四台螢幕解析度為 1920 x 1080。不過,AIR for TV 會使硬體傳遞最佳真實度。因此,在這個範例中,使用 1920 x 1080 螢幕解析度的硬體會顯示 1080p 視訊。
針對多種螢幕大小進行設計
您可以開發在多個 AIR for TV 裝置上都能正常執行和精美呈現的全螢幕 AIR for TV 應用程式。請執行下列動作:
-
將舞台屬性
scaleMode
、
align
及
displayState
設為建議值:
StageScaleMode.NO_SCALE
、
StageAlign.TOP_LEFT
及
StageDisplayState.FULL_SCREEN_INTERACTIVE
。
-
根據
Capabilities.screenResolutionX
和
Capabilities.screenResolutionY
來設定安全檢視區域。
-
根據安全檢視區域的寬度和高度,調整內容的大小和版面。
雖然內容的物件會很大 (尤其是與行動裝置應用程式比較),但動態版面、相對位置及最適化內容等的概念都相同。如需 ActionScript 支援這些概念的進一步資訊,請參閱
編寫多種螢幕尺寸適用的行動 Flash 內容
。
舞台品質
AIR for TV 應用程式的
Stage.quality
屬性永遠是
StageQuality.High
。您無法改變。
此屬性指定所有 Stage 物件的顯示品質。