Orientamento manuale

AIR 2.6 e versioni successive

Potete controllare l'orientamento dello stage utilizzando i metodi setOrientation() e setAspectRatio() dell'oggetto Stage.

Impostazione dell'orientamento dello stage

Potete impostare l'orientamento dello stage in fase di esecuzione utilizzando il metodo setOrientation() dell'oggetto Stage. Utilizzate le costanti di stringa definite dalla classe StageOrientation per specificare l'orientamento desiderato:

this.stage.setOrientation( StageOrientation.ROTATED_RIGHT );
Non tutti i dispositivi e i sistemi operativi supportano tutti i possibili orientamenti. Ad esempio, Android 2.2 non supporta la scelta a livello di codice dell'orientamento ruotato a sinistra su dispositivi con orientamento standard verticale, né supporta l'orientamento capovolto. La proprietà supportedOrientations dello stage fornisce un elenco di orientamenti che è possibile passare al metodo setOrientation() :
var orientations:Vector.<String> = this.stage.supportedOrientations; 
for each( var orientation:String in orientations ) 
{ 
    trace( orientation ); 
}

Impostazione delle proporzioni dello stage

Se la vostra preoccupazione principale sono le proporzioni dello stage, potete impostare le proporzioni su verticale o orizzontale. Potete impostare le proporzioni nel descrittore dell'applicazione AIR o in fase di esecuzione utilizzando il metodo setAspectRatio() dell'oggetto Stage:

this.stage.setAspectRatio( StageAspectRatio.LANDSCAPE );

In fase di esecuzione viene scelto uno dei due possibili orientamenti per le proporzioni specificate. Questo potrebbe non corrispondere all'orientamento dispositivo corrente. Ad esempio, l'orientamento predefinito viene scelto preferito a quello capovolto (AIR 3.2 e versioni precedenti) e l'orientamento appropriato per la tastiera scorrevole viene preferito all'orientamento opposto.

(AIR 3.3 e versioni successive) A partire da AIR 3.16 (SWF versione 16), potete anche utilizzare la costante StageAspectRatio.ANY . Se Stage.autoOrients è impostato su true e chiamate setAspectRatio(StageAspectRatio.ANY) , l'applicazione è in grado cambiare orientamento in tutte le direzioni (orizzontale-sinistra, orizzontale-destra, verticale e verticale capovolto). Un'altra novità di AIR 3.3 è la persistenza delle proporzioni; un'ulteriore rotazione del dispositivo viene vincolata all'orientamento specificato.

Esempio: impostazione dell'orientamento dello stage in modo che corrisponda all'orientamento del dispositivo

L'esempio seguente illustra una funzione che aggiorna l'orientamento dello stage in modo che corrisponda all'orientamento del dispositivo corrente. La proprietà deviceOrientation dello stage indica l'orientamento fisico del dispositivo, anche quando l'orientamento automatico è disattivato.

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

La modifica dell'orientamento è asincrona. È possibile intercettare l'evento orientationChange inviato dallo stage per rilevare il completamento della modifica. Se un orientamento non è supportato su un dispositivo, la chiamata setOrientation() non riesce senza generare un errore.