Um die Orientation eurer View vorzugeben, bedarf es eigentlich nur einiger kurzer Anweisungen in der app-XML und im Programmcode. Allerdings sind diese Anweisungen nicht oder nur sehr schlecht dokumentiert. Deshalb ein kurzer Überblick:
autoOrientation aus
Sucht in der app-Xml die Zeile
<autoOrients>true</autoOrients>
und setzt diese auf false.
<autoOrients>false</autoOrients>
Diese Anweisung sorgt dafür, dass sich die Applikation nicht mehr am Beschleunigungssensor orientiert und die erste View eurer App wird nach den Einstellungen in der Zeile
<aspectRatio>landscape</aspectRatio>
ausgerichtet.
<aspectRatio>landscape</aspectRatio>
steht, falls diese Zeile bei euch nicht vorhanden sein sollte, zwischen
<initialWindow> ... ... <aspectRatio>landscape</aspectRatio> </initialWindow>
Manuelle Steuerung der Orientierung
Um nun der View manuell die Orientierung zu übergeben, sprecht ihr das viewActivate-Ereignis in eurer View an. Dies macht ihr in der View-Deklaration euere View-MXML. Dort platziert ihr eine Funktion, um das Ereignis abzufangen.
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="Your title" viewActivate="onActive(event)">
Innerhalb dieser Funktion könnt ihr nun die Orientierung vorgeben.
public function onActive(e:Event):void
{
stage.setAspectRatio(StageAspectRatio.PORTRAIT);
}Hier könnt ihr entweder StageAspectRatio.PORTRAIT oder StageAspectRatio.LANDSCAPE nutzen. Dies ist der Weg, der nicht zu einer deprecated Warnung im Compiler führt und deshalb wohl der vernünftigere Weg. Den anderen Weg findet ihr hier http://cookbooks.adobe.com/post_Auto_orient_your_mobile_application_to_the_device-18224.html.
Ich hoffe, dass spart euch ein wenig Zeit.