Actionscript 3 AS3-仅限iOS强制横向模式?
我已经为iOS开发了一款游戏,它是为横向模式设计的,它工作得很好,只是如果你把设备转到纵向模式,它会停在那里,界面只占据屏幕的中间部分。我如何强制应用程序只允许两种横向模式,而不停止在纵向位置 我尝试了所有的发布设置。纵横比设置为横向,自动定向被选中,如果我取消选择自动定向,应用程序不会旋转到其他横向模式,我听说苹果会自动拒绝 除了这个小缺陷,这个应用程序已经准备就绪。谢谢你能提供的任何帮助Actionscript 3 AS3-仅限iOS强制横向模式?,actionscript-3,landscape,autorotate,Actionscript 3,Landscape,Autorotate,我已经为iOS开发了一款游戏,它是为横向模式设计的,它工作得很好,只是如果你把设备转到纵向模式,它会停在那里,界面只占据屏幕的中间部分。我如何强制应用程序只允许两种横向模式,而不停止在纵向位置 我尝试了所有的发布设置。纵横比设置为横向,自动定向被选中,如果我取消选择自动定向,应用程序不会旋转到其他横向模式,我听说苹果会自动拒绝 除了这个小缺陷,这个应用程序已经准备就绪。谢谢你能提供的任何帮助 Rich我几天前在Adobe论坛上找到了这个问题的答案 将纵横比设置为自动 将“自动定向”设置为“允许”
Rich我几天前在Adobe论坛上找到了这个问题的答案 将纵横比设置为自动 将“自动定向”设置为“允许” 然后在主剪辑上使用以下代码:
var startOrientation:String = stage.orientation;
if (startOrientation == StageOrientation.DEFAULT || startOrientation == StageOrientation.UPSIDE_DOWN)
{
stage.setOrientation(StageOrientation.ROTATED_RIGHT);
}
else
{
stage.setOrientation(startOrientation);
}
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChangeListener);
function orientationChangeListener(e:StageOrientationEvent)
{
if (e.afterOrientation == StageOrientation.DEFAULT || e.afterOrientation == StageOrientation.UPSIDE_DOWN)
{
e.preventDefault();
}
}
对我来说效果很好。另一种方法(尽管类似)是在应用程序描述符中将aspectRatio设置为横向,将autoOrients设置为false。然后在应用程序加载后启用自动定向,并侦听定向更改事件。在Flash Builder 4.6中,这可以按如下方式进行: 描述符:
<aspectRatio>landscape</aspectRatio>
<autoOrients>false</autoOrients>
看起来您还必须确保应用程序具有显式维度;否则,即使阶段没有重新定向,视图仍可能调整大小
请参阅:
上面的答案对我不起作用,因为在iOS上,默认设置不再起作用 对于那些仍然没有好运的人。。。这就是我所做的 我想要: Ipad&所有安卓平板电脑设备都能纵向或横向移动,并能在任何方向自动旋转 iphone、ipod和所有小屏幕设备都需要强制横向(或者在您的情况下,您可能需要强制纵向) 我做到了: 在my-app.xml中:
<aspectRatio>any</aspectRatio>
<autoOrients>true</autoOrients>
any
真的
在Actionscript中:
var screenDPI:Number = Capabilities.screenDPI;
var resolutionX:Number = Capabilities.screenResolutionX;
var resolutionY:Number = Capabilities.screenResolutionY;
var numDiagonalDistance:Number = Math.round(Math.sqrt((resolutionX*resolutionX)+(resolutionY*resolutionY)));
var numDiagonalInches:Number = numDiagonalDistance/screenDPI;
if(numDiagonalInches<6){
MainData.SMALL_DEVICE=true;
}else{
MainData.SMALL_DEVICE=false;
}
if(MainData.SMALL_DEVICE){
this.stage.setAspectRatio(StageAspectRatio.LANDSCAPE);
}
var screenDPI:Number=Capabilities.screenDPI;
var resolutionX:Number=能力。screenResolutionX;
var Resolution:Number=能力。ScreenResolution;
var numDiagonalDistance:Number=Math.round(Math.sqrt((resolutionX*resolutionX)+(resolutionY*resolutionY));
var numDiagonalInches:Number=numDiagonalDistance/screenDPI;
如果(numDiagonalInchesI我忽略了你要求做的事情和苹果拒绝做的事情之间的区别……你想让auto rotate保持开启状态,但只让应用程序旋转到横向方向,如果应用程序在所有状态下都能正常运行,苹果会拒绝支持所有方向。苹果不要求iPad必须在pp同时允许横向和纵向,它们只需要横向和纵向都工作。Flash内置的ipa允许我的横向应用程序停止在纵向位置并缩小内容以适应。下面的代码解决了这个问题。
var screenDPI:Number = Capabilities.screenDPI;
var resolutionX:Number = Capabilities.screenResolutionX;
var resolutionY:Number = Capabilities.screenResolutionY;
var numDiagonalDistance:Number = Math.round(Math.sqrt((resolutionX*resolutionX)+(resolutionY*resolutionY)));
var numDiagonalInches:Number = numDiagonalDistance/screenDPI;
if(numDiagonalInches<6){
MainData.SMALL_DEVICE=true;
}else{
MainData.SMALL_DEVICE=false;
}
if(MainData.SMALL_DEVICE){
this.stage.setAspectRatio(StageAspectRatio.LANDSCAPE);
}