我正在AIR移动设备中创建一个应用程序,我需要始终处于横向模式。在大多数设备上都没问题,但在某些设备上(例如摩托罗拉XOOM),该应用程序将在横向上启动。至少在Flash Builder 4.5附带的模拟器中。我不知道这是模拟器的问题,还是XOOM的方向与大多数设备不同。 无论如何,我想确保设备始终处于横向模式。这可以很容易地检查:
if(stage.stageWidth<stage.stageHeight){
//rotate screen;
}
如果要声明确保正确定位,我需要输入什么?
感谢。
答案 0 :(得分:3)
在* -app.xml文件中,您可以定义应用程序应该如何操作:
<aspectRatio>landscape</aspectRatio>
<autoOrients>true</autoOrients>
答案 1 :(得分:2)
即使在application.xml中将aspectRatio设置为landscape并且autoOrients设置为false,有时在mobile air 3.1 app的第一帧期间设备的方向设置不正确,因此stage.stageWidth将返回两个维度中较小的一个。几帧后,它将翻转到正确的方向。这可能是你目击的。
因此,如果您需要在首次加载应用时了解横向舞台尺寸,请使用:
var width :Number = Math.max(stage.stageWidth, stage.stageHeight);
var height :Number = Math.min(stage.stageWidth, stage.stageHeight);
您不需要手动旋转整个应用,但具体如下:
this.rotationX = 90
答案 2 :(得分:2)
您应该小心锁定应用程序中的轮换,如果您曾经提交到Apple商店,如果应用程序无法适应颠倒的设备,则可以拒绝您。许多设备的“默认”方向不同,但设置应用程序描述符的横向开始纵横比应该有效。在AIR 3.3中有一个更改,因此设置stage.aspectRatio将保持预期的宽高比,无论设备的默认方向如何,或设备是否颠倒。
您需要设置:
<aspectRatio>landscape</aspectRatio>
<autoOrients>true</autoOrients>
在您的应用描述符中。您还需要设置
-swf-version=16
在您的编译器选项中。使用这些设置和AIR 3.3,应用程序将保持横向宽高比,无论设备是旋转到设备的“顶部”是左侧还是右侧。将纵横比设置为纵向将使设备保持纵向纵横比,即使设备被倒置也是如此。