这个问题有点奇怪。在Adobe AIR中,我试图将我的应用程序的iPhone和iPad版本合并到一个应用程序中。但是我很难处理方向问题。我需要在iPad上的应用程序以横向模式显示,在iPhone上它应该以纵向模式显示。
可以这样做吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
第一个问题是检测设备是iPad还是iPhone。我相信这样做的唯一方法是检查设备分辨率(当然,您可以为不同的设备分发单独的二进制文件,但是您提到在一个应用程序中执行此操作)。
通常,您可以在XML应用程序描述符中处理屏幕旋转,例如:
<aspectRatio>landscape</aspectRatio>
<autoOrients>false</autoOrients>
但是,由于您希望根据设备执行不同的操作,因此无法使用。
我过去使用的另一种方法是检测Orientation事件并阻止默认值并通过AS3手动设置方向。以下是如何执行此操作的一个很好的示例:AS3 - iOS force landscape mode only?
使用那里提供的代码示例,只需要获取设备检测/屏幕分辨率检测代码并将屏幕方向设置为对该设备的适当检测(并阻止该设备的适当方向事件)。
答案 2 :(得分:0)
如果您仍然需要它,我只修改了“强制横向模式”,仅对肖像进行相同的操作。这是代码:
var startOrientation:String = stage.orientation;
if ( startOrientation == StageOrientation.ROTATED_RIGHT)
{
stage.setOrientation(StageOrientation.UPSIDE_DOWN);
}else if(startOrientation == StageOrientation.ROTATED_LEFT){
StageOrientation.DEFAULT;
}
else
{
stage.setOrientation(startOrientation);
}
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChangeListener);
function orientationChangeListener(e:StageOrientationEvent)
{
if (e.afterOrientation == StageOrientation.ROTATED_RIGHT || e.afterOrientation == StageOrientation.ROTATED_LEFT )
{
e.preventDefault();
}
}