我有希望锁定横向AIR应用程序。 我从来不希望应用程序旋转为纵向模式。 Adobe的解决了这个问题,貌似,是配置我的* -app.xml文件,如下所示:
<!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device -->
<aspectRatio>landscape</aspectRatio>
<!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false -->
<autoOrients>false</autoOrients>
这工作的时间多数,但并非总是如此。 例如,在某些Android香精(例如:2.x的,在一个角落平板上运行),如果我的设备的屏幕关闭而闪光生成器是包装和部署我的APK,应用程序开始在半断状态,其中它的纵横比是景观,但一切都已经与画像尺寸测量。 在其他设备上,就像我的谷歌Nexus(安卓4.1),应用程序正确启动(在横向模式下),但如果我关掉屏幕,旋转设备到肖像模式,并开启屏幕的背面导通我的AIR应用程序已被无形再次旋转到肖像模式。 更糟的是,没有StageOrientationEvent.ORIENTATION_CHANGE事件甚至可以调度来指示,这已经发生了。
我已经尝试了上面的方法,它是通过编程设置设备方向的变体:
private function onAddedToStage( event:Event ):void {
stage.autoOrients = false;
stage.setOrientation( StageOrientation.ROTATED_RIGHT );
}
这种方法具有上述相同的问题。
我也想尽了办法在这个其他堆栈溢出线程提到 。 而不是禁用自动东方的,我已经试过听StageOrientationEvent.ORIENTATION_CHANGE和防止设备进入纵向模式:
private function onAddedToStage( event:Event ):void {
stage.addEventListener( StageOrientationEvent.ORIENTATION_CHANGE, onStageOrientationChange, true, int.MAX_VALUE );
}
private function onStageOrientationChange( event:StageOrientationEvent ):void {
switch( event.afterOrientation ) {
case StageOrientation.DEFAULT:
case StageOrientation.UPSIDE_DOWN:
case StageOrientation.UNKNOWN:
event.preventDefault();
break;
case StageOrientation.ROTATED_RIGHT:
case StageOrientation.ROTATED_LEFT:
break;
}
}
这也似乎只是为了工作一些时间。 在许多情况下,event.preventDefault()有没有影响,反正应用旋转。
所以...我对其他AIR开发出来的问题有:没有人知道的一种方式,以可靠地锁定装置成一个单一的方向是什么?