Actionscript 3 AS3-仅限iOS强制横向模式?

Actionscript 3 AS3-仅限iOS强制横向模式?,actionscript-3,landscape,autorotate,Actionscript 3,Landscape,Autorotate,我已经为iOS开发了一款游戏,它是为横向模式设计的,它工作得很好,只是如果你把设备转到纵向模式,它会停在那里,界面只占据屏幕的中间部分。我如何强制应用程序只允许两种横向模式,而不停止在纵向位置 我尝试了所有的发布设置。纵横比设置为横向,自动定向被选中,如果我取消选择自动定向,应用程序不会旋转到其他横向模式,我听说苹果会自动拒绝 除了这个小缺陷,这个应用程序已经准备就绪。谢谢你能提供的任何帮助 Rich我几天前在Adobe论坛上找到了这个问题的答案 将纵横比设置为自动 将“自动定向”设置为“允许”

我已经为iOS开发了一款游戏,它是为横向模式设计的,它工作得很好,只是如果你把设备转到纵向模式,它会停在那里,界面只占据屏幕的中间部分。我如何强制应用程序只允许两种横向模式,而不停止在纵向位置

我尝试了所有的发布设置。纵横比设置为横向,自动定向被选中,如果我取消选择自动定向,应用程序不会旋转到其他横向模式,我听说苹果会自动拒绝

除了这个小缺陷,这个应用程序已经准备就绪。谢谢你能提供的任何帮助


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);
        }