您可以使用舞台
setOrientation()
或
setAspectRatio()
方法來控制舞台方向。
設定舞台方向
您可以使用 Stage 物件的
setOrientation()
方法,在執行階段設定舞台方向。使用 StageOrientation 類別定義的字串常數可指定想要的方向。
this.stage.setOrientation( StageOrientation.ROTATED_RIGHT );
並非所有裝置和作業系統都支援所有可能的方向。例如,Android 2.2 不支援以程式設計方式在縱向標準裝置上選擇向左旋轉,也不支援倒轉方向。舞台的
supportedOrientations
屬性提供可傳送到
setOrientation()
方法的方向清單:
var orientations:Vector.<String> = this.stage.supportedOrientations;
for each( var orientation:String in orientations )
{
trace( orientation );
}
設定舞台外觀比例
如果您主要的考量是舞台外觀比例,可以將外觀比例設定為縱向或橫向。您可以在 AIR 應用程式描述器設定外觀比例或在執行階段使用舞台
setAspectRatio()
方法:
this.stage.setAspectRatio( StageAspectRatio.LANDSCAPE );
執行階段選擇指定外觀比例的兩個可能方向的其中之一。這可能不符合目前裝置方向。例如,偏好設定中的預設方向會選擇為倒轉方向 (AIR 3.2 和更早版本),而偏好設定中外滑鍵盤適用的方向為相反方向。
(AIR 3.3 及更新版本)
從 AIR 3.3 開始 (SWF 版本 16),您也可以使用
StageAspectRatio.ANY
常數。如果
Stage.autoOrients
設定為
true
,並且您呼叫
setAspectRatio(StageAspectRatio.ANY)
,您的應用程式會具有重新沿向所有方向的能力 (landscape-left、landscape-right、portait 和 portrait-upside-down)。這也是 AIR 3.3 的新功能,外觀比例具永續性,並且限制裝置在進一步旋轉時只能旋轉至指定的方向。
範例:設定舞台方向以符合裝置方向
以下範例說明更新舞台方向以符合目前裝置方向的功能。舞台
deviceOrientation
屬性表示裝置的實際方向,即使自動調整方向已關閉。
function refreshOrientation( theStage:Stage ):void
{
switch ( theStage.deviceOrientation )
{
case StageOrientation.DEFAULT:
theStage.setOrientation( StageOrientation.DEFAULT );
break;
case StageOrientation.ROTATED_RIGHT:
theStage.setOrientation( StageOrientation.ROTATED_LEFT );
break;
case StageOrientation.ROTATED_LEFT:
theStage.setOrientation( StageOrientation.ROTATED_RIGHT );
break;
case StageOrientation.UPSIDE_DOWN:
theStage.setOrientation( StageOrientation.UPSIDE_DOWN );
break;
default:
//No change
}
}
方向更改為非同步。您可以偵聽舞台傳送的
orientationChange
事件以偵測更改的完成。如果裝置不支援方向,
setOrientation()
呼叫會失敗,且不會擲出錯誤。
|
|
|