Orientación manual

AIR 2.6 y posterior

Es posible controlar la orientación del escenario con los métodos setOrientation() o setAspectRatio() del objeto Stage.

Definición de la orientación del escenario

Puede definir la orientación del escenario en tiempo de ejecución con el método setOrientation() del objeto Stage. Utilice las constantes de cadena definidas por la clase StageOrientation para especificar la orientación que desee:

this.stage.setOrientation( StageOrientation.ROTATED_RIGHT );
No todos los dispositivos y sistemas operativos admiten todas las orientaciones posibles. Por ejemplo, la programación de Android 2.2 no permite elegir mediante programación la orientación girada a la izquierda en dispositivos con orientación estándar vertical ni permite la orientación invertida en ningún caso. La propiedad supportedOrientations del escenario ofrece una lista con las orientaciones que pueden transferirse al método setOrientation() :
var orientations:Vector.<String> = this.stage.supportedOrientations; 
for each( var orientation:String in orientations ) 
{ 
    trace( orientation ); 
}

Definición de la relación de aspecto del escenario

Si lo que más le importa es la relación de aspecto del escenario, puede definirla en vertical o en horizontal. Puede definir la relación de aspecto en el descriptor de la aplicación de AIR o, en tiempo de ejecución a través del método setAspectRatio() del objeto Stage:

this.stage.setAspectRatio( StageAspectRatio.LANDSCAPE );

El motor de ejecución seleccionará una de las dos orientaciones posibles para la relación de aspecto especificada. Puede no coincidir con la orientación actual del dispositivo. Por ejemplo, la orientación predeterminada se elige con orientación normal como preferencia (AIR 3.2 y versiones anteriores) y la orientación adecuada para el teclado virtual se selecciona con orientación contraria a la preferente.

(AIR 3.3 y versiones posteriores) A partir de AIR 3.3 (SWF versión 16), también es posible utilizar la constante StageAspectRatio.ANY . Si Stage.autoOrients se establece en true y se llama a setAspectRatio(StageAspectRatio.ANY) , la aplicación puede reorientar todas las orientaciones (horizontal-izquierda, horizontal-derecha, vertical y vertical-al revés). Otra novedad de AIR 3.3 es que la relación de aspecto se mantiene y la rotación adicional del dispositivo se limita a la orientación especificada.

Ejemplo: Definición de la orientación del escenario para coincidir con la del dispositivo

El siguiente ejemplo muestra una función que actualiza la orientación del escenario para que coincida con la orientación actual del dispositivo. La propiedad deviceOrientation del escenario indica la orientación física del dispositivo, incluso si está desactivada la orientación automática.

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              
    } 
}

El cambio de orientación es asíncrono. Es posible detectar el evento orientationChange distribuido por el escenario para detectar la finalización del cambio. Si un dispositivo no admite una orientación, la llamada setOrientation() falla sin emitir un error.