Click here to Skip to main content
15,891,253 members
Please Sign up or sign in to vote.
4.00/5 (1 vote)
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.

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


Thanks.
Posted

1 solution

Finally found the solution after spending two days on this.


in update function add OrientationChanging Event in stage.addEventListner.

actionscript
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.
Happy Programming :)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900