2012-01-11 63 views
3

我在AIR手机中制作了一款应用程序,我需要始终处于横向模式。在大多数设备上这是可以的,但在某些设备上(例如摩托罗拉XOOM),该应用会在横向上启动。至少在Flash Builder 4.5附带的模拟器中内置。我不知道这是模拟器的问题,还是XOOM的方向与大多数设备不同。 无论如何,我想确保设备始终处于横向模式。这可以很容易地检查:AIR手机始终处于风景状态

if(stage.stageWidth<stage.stageHeight){ 
//rotate screen; 
} 

我需要把如果陈述,以确保它是正确的导向?

谢谢。

回答

3

在* -app.xml文件,您可以定义应用程序应该如何采取行动:

<aspectRatio>landscape</aspectRatio> 
<autoOrients>true</autoOrients> 
2

即使的aspectRatio设置为横向中将autoOrients并设置为application.xml中虚假的,有时一个设备的方向设置不正确在移动空气3.1应用程序的第一帧期间,stage.stageWidth将返回两个维度中较小的一个。几帧后,它会翻转到正确的方向。这可能是你目睹的。

所以,如果你需要知道的山水舞台尺寸,当你的应用程序第一次加载时,使用:

var width :Number = Math.max(stage.stageWidth, stage.stageHeight); 
var height :Number = Math.min(stage.stageWidth, stage.stageHeight); 

你不应该需要手动旋转你的整个应用程序,但在这里是如何:

this.rotationX = 90 
2

如果您提交给苹果商店,您应该小心锁定应用程序中的旋转角度,否则如果应用程序无法调整到正在倒置的设备,则可能会被拒绝。许多设备在“默认”方向上有所不同,但以横向的起始纵横比设置应用程序描述符应该可行。在AIR 3.3中有一个变化,因此设置stage.aspectRatio将保持预期的高宽比,而不管设备的默认方向如何,或设备是否颠倒。

您需要设置:

<aspectRatio>landscape</aspectRatio> 
<autoOrients>true</autoOrients> 

在您的应用程序描述符。您还需要在您的编译器选项中设置

-swf-version=16 

。使用这些设置和AIR 3.3,无论设备是旋转到设备的“顶部”位于左侧还是右侧,该应用都会保持横向纵横比。纵向比例设置为纵向会使设备保持纵向纵横比,即使设备颠倒。

相关问题