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