我正在使用FlashBuilder 4.6来开发Android应用。 在应用程序中,需要在设备方向更改时设置一些值。即,当屏幕/设备方向从横向变为纵向时设置值,反之亦然。
虽然最初我的应用程序有 LandScape 方向。这个要求是针对特定的观点。
我希望每次屏幕/设备方向改变时,必须在那里设置值。
我没有得到理想的结果。
请指导我,告诉我代码是否错误或如何实现这一目标。
<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>
感谢。
答案 0 :(得分:1)
最后在花了两天时间后找到了解决方案。
更新功能中的在stage.addEventListner中添加 OrientationChanging Event 。
private function update(event:AccelerometerEvent):void
{
this.stage.autoOrients = true;
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,adjust);
}
private 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;
}
}
非常感谢所有看过这个问题并努力解决问题的人。 :)
答案 1 :(得分:0)
我不是一个经过实验的程序员!但是:私有函数更新(事件:AccelerometerEvent):void应该是:private function accl(event:AccelerometerEvent):void ??或以下代码中的类似if(stage [not event] .afterOrientation == ???只是一个意见!