手動方向

AIR 2.6 及更新的版本

您可以使用舞台 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() 呼叫會失敗,且不會擲出錯誤。