Vous pouvez contrôler l’orientation de la scène via la méthode
setOrientation()
ou
setAspectRatio()
de l’objet Stage.
Définition de l’orientation de la scène
Vous pouvez définir l’orientation de la scène à l’exécution à l’aide de la méthode
setOrientation()
de l’objet Stage. Utilisez les constantes de chaîne définies par la classe StageOrientation pour spécifier l’orientation de votre choix :
this.stage.setOrientation( StageOrientation.ROTATED_RIGHT );
Tous les périphériques et systèmes d’exploitation ne prennent pas en charge toutes les orientations possibles. Par exemple, Android 2.2 ne prend pas en charge la sélection par programmation de l’orientation vers la gauche sur les périphériques portrait standard et ne prend pas du tout en charge l’orientation à l’envers. La propriété
supportedOrientations
de la scène fournit une liste des orientations pouvant être transmises à la méthode
setOrientation()
:
var orientations:Vector.<String> = this.stage.supportedOrientations;
for each( var orientation:String in orientations )
{
trace( orientation );
}
Définition du format de la scène
Si le format de la scène vous importe, vous pouvez le définir sur portrait ou paysage. Vous pouvez définir le format soit dans le descripteur de l’application AIR, soit à l’exécution à l’aide de la méthode
setAspectRatio()
de l’objet Stage :
this.stage.setAspectRatio( StageAspectRatio.LANDSCAPE );
Le moteur d’exécution choisit l’une des deux orientations possibles pour le format spécifié. Il est possible que ce choix ne corresponde pas à l’orientation du périphérique. Par exemple, l’orientation par défaut est préférée à l’orientation à l’envers (AIR 3.2 et les versions antérieures) et l’orientation convenant au clavier coulissant est préférée à l’orientation opposée.
(AIR 3.3 et versions ultérieures)
A partir d’AIR 3.3 (SWF version 16), vous pouvez également utiliser la constante
StageAspectRatio.ANY
. Si vous définissez
Stage.autoOrients
sur
true
et appelez
setAspectRatio(StageAspectRatio.ANY)
, votre application a la capacité de réorienter toutes les orientations (paysage vers la gauche, paysage vers la droite, portait et portrait à l’envers). Autre nouveauté dans AIR 3.3 : le format est persistent et toute rotation du périphérique est soumise à l’orientation spécifiée.
Exemple : définition de l’orientation de la scène de façon à ce qu’elle corresponde à l’orientation du périphérique
L’exemple suivant illustre une fonction qui met à jour l’orientation de la scène afin qu’elle corresponde à celle du périphérique. La propriété
deviceOrientation
de la scène indique l’orientation physique du périphérique, même si l’orientation automatique est désactivée.
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 modification de l’orientation est asynchrone. Vous pouvez écouter l’événement
orientationChange
distribué par la scène pour savoir quand la modification est terminée. Si une orientation n’est pas prise en charge sur un périphérique, l’appel de
setOrientation()
échoue sans distribuer d’erreur.
|
|
|