1 Reply Latest reply on Jun 15, 2012 9:49 PM by ManishNamdev

    Mobile Orientation

    ManishNamdev

      Hello friends,

       

      I'm working with FlashBuilder 4.6 to develop Android app.

      In the application there is a requirement of setting some values when device orientation changes. i.e. setting the values when the screen/device orientation changes from Landscape to Portrait and vice-verse.

       

      Although Initially my application has LandScape orientation. And this requirement is on specific view.

       

      I want every time when the screen/device orientation changes the values must be set there.

      I am not getting the desired result.

      Please guide me and tell me if I am at wrong in code or how can i achieve this.

       


      <s:View xmlns:fx="http://ns.adobe.com/mxml/2009"

      xmlns:s="library://ns.adobe.com/flex/spark" title="{data}"

      xmlns:mx="library://ns.adobe.com/flex/mx"

      viewActivate="view1_viewActivateHandler(event)"

      creationComplete="view1_creationCompleteHandler(event)">

      <fx:Script>

         <![CDATA[

      protected function view1_viewActivateHandler(event:ViewNavigatorEvent):void

      {

          if(Accelerometer.isSupported)

          {

      accl = new Accelerometer();

              accl.addEventListener(AccelerometerEvent.UPDATE,update);                    //accl.addEventListener(AccelerometerEvent.UPDATE,adjustImage);
          }

      }

      private function update(event:AccelerometerEvent):void

      {

           this.stage.autoOrients = true;

           //in the below line I am attaching StageOrienationEvent that will adjust the
           //values.
           stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,adjust);

      }

      private function adjust(event:StageOrientationEvent):void

      {

           if(event.afterOrientation == StageOrientation.ROTATED_LEFT)

           {

      testVal.text ="After OR is LEFT";

           }

           else if(event.afterOrientation == StageOrientation.ROTATED_RIGHT)

           {

      testVal.text ="After OR is RIGHT";

           }

           else if(StageAspectRatio.LANDSCAPE)

           {

      testVal.text ="StageAspectRatio is Landscape";

           }

           else if(StageAspectRatio.PORTRAIT)

           {

      testVal.text="StageAspectRatio is  Portrait";

           }

      }

      </fx:Script>

        • 1. Re: Mobile Orientation
          ManishNamdev Level 1

          Finally found the solution after spending two days on this.


          in update function add OrientationChanging Event in stage.addEventListner.

           

          protected function update(event:AccelerometerEvent):void

          {

                this.stage.autoOrients  = true;      stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,adjust);

          protected function adjust(event:StageOrientationEvent):void

          {

                switch(event.afterOrientation)

                {

                    case StageOrientation.DEFAULT:

                    //Do Something here. The Portrait Position.

                                  break;

                    case StageOrienatation.ROTATED_LEFT:

                    //Do Something here when you rotate your phone portrait to left side.

                             break;

                    case StageOrienatation.ROTATED_RIGHT:

                    //Do something here when you rotate your phone portrait to right side.

                             break;

                }

          }

           

          Many thanks to all who viewed this question and try put their efforts for solution.