Richtig Verhinderung Orientierung ändern in Flex Mobile app

Ist jemand in der Lage, das tatsächlich funktioniert-Flex SDK 4.6?

Hier ein kurzes snippet :

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        addedToStage="onAddedToStage(event)"
        title="Title">
    <fx:Script>
        <![CDATA[  
            private function onAddedToStage(event:Event):void { 
                if (stage.autoOrients) {
                    stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging, false, 0, true);
                }
            }

            private function orientationChanging(event:StageOrientationEvent):void {
                if (event.afterOrientation == StageOrientation.DEFAULT || event.afterOrientation == StageOrientation.UPSIDE_DOWN) {
                    event.preventDefault(); 
                }     
            } 
        ]]>
    </fx:Script>
</s:View>

Was ich versuche zu erreichen ist die Unterstützung von Landscape-Modus in beide Richtungen, so dass, wenn der Benutzer dreht das Gerät um 180 Grad, der Bildschirm sollte auch drehen. Aber es sollte keine Aktion aus, wenn der Benutzer das Gerät dreht, um ein Querformat Orientierungen. Stattdessen sehe ich die Breite änderungen zu navigator-action-bar und manchmal auch Inhalt im Querformat Orientierungen, so scheint die Verhinderung der Veranstaltung ist nicht genug. Ich bin mit dem "offiziellen" Weg Adobe schlägt vor, das problem ist aber, dass es nicht sehr gut funktioniert. Zugegeben, die Bühne nicht ändern, aber es scheint, dass es etwas brennen im navigator wie auch immer, da können Sie sehen, die action bar Breite ändern.

Ich hatte einigen Erfolg mit explizit Einstellung layoutbounds festen Breite in der handler-Methode - dies verhindert, dass die änderung der actionbar Breite, aber es ist nur eine vorübergehende Lösung - wenn die view ist ein Thema, um einen übergang oder eine andere redraw - es wird wieder gerendert mit schlechten Größen. Als ob es etwas war, was darunter war, erzählen Sie, dass es im portrait-Modus, obwohl ich versuche, es zu verhindern.

Bevor Sie detonieren mit einigen dummen Ideen wie "autoOrient = false" nicht. Es ist offensichtlich keine Lösung für dieses problem. Offensichtlich ist es ein bug mit dem Flex-SDK - hat jemand einen Weg finden, es zu beheben oder eine stabile Lösung?

EDIT: anscheinend andere stieß ähnliches Problem:

- http://forums.adobe.com/message/3969531 (das Haupt-Thema ist, über etwas anderes, aber Lesen Sie Magische Roboter Kommentar)

- http://forums.adobe.com/message/4130972

  • Das ist seltsam, weil das ist genau das, was ich benutze in meiner Anwendung, und es funktioniert sehr gut. Welche SDK version verwendest du? EDIT : Okay sorry, gerade gemerkt, dass es in der ersten Zeile von Euch Frage! Das ist die version, die ich nutzen, so habe ich keine Ahnung. Haben Sie versucht, es zu tun in Ihrem Antrag Klasse (ich verstehe nicht, warum das etwas ändern würde, aber das ist das einzige, was mir in den Sinn kommt)
  • Sind Sie sicher? Können Sie beim erstellen neuer flex-mobilprojekte verwenden Sie mein code in anzeigen, kompilieren und sehen, (es kann auch im debugger, die Sie nicht haben, um es auf dem Gerät). Können Sie fügen Sie relevanten Fragmente aus dem code? Mein Beispiel ist sehr einfach, ohne zusätzlichen code, kein skinning, nichts, noch ist es eindeutig nicht richtig funktionieren - so finde ich es schwer zu glauben, es funktioniert für Sie?
  • Yep, nur ersetzt meinen code mit Euch-und es funktioniert auf einem iPad. Ich weiß nicht monitor meine action bar Breite, aber es bleibt genau da, wo es ist. Ich bin das hinzufügen der listener direkt auf die addedToStage meiner ViewNavigatorApplication
  • Ich habe versucht, es auch im Hauptfenster der Anwendung Datei - funktioniert immer noch nicht. Es ist eklatant sichtbar im debugger, emulator, wenn Sie drehen Sie es mit debugger-Menü - die Phase nicht ändern, aber die Aktion Balken ändert seine Breite, wenn es im portrait-Modus. Meine Anwendung startet in aspectRatio=Querformat (definiert in xml). Verwenden Sie FB 4.6 SDK 4.6? Windows oder Mac OS?
  • Ok, ich habe einige tests gemacht und ja, die action bar, die Größe ändert sich in den emulator und (manchmal ?) auf dem Gerät. Ich habe keine Ahnung, ich unfortunetely keine Zeit haben, näher untersuchen. Sorry 🙁 zur info : FB und Flex 4.6 auf Windows (ich habe eine Vorabversion von FB, aber das sollte nichts ändern)
InformationsquelleAutor rattkin | 2012-01-17
Schreibe einen Kommentar