2

我想让我的 AIR 应用程序随着设备旋转而改变屏幕方向。但是,我只想强制它处于横向模式 - 我绝不希望 ti 处于纵向纵横比。

根据官方 Adob​​e 文档,应该这样做:将描述符文件中的值更改为:

<aspectRatio>landscape</aspectRatio>
<autoOrients>true</autoOrients>

然后,在您的代码中,执行以下操作:

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging);

private function orientationChanging(e:StageOrientationEvent) {
    if (e.afterOrientation == StageOrientation.DEFAULT || e.afterOrientation == StageOrientation.UPSIDE_DOWN) {
        e.preventDefault();
    }
}

我已经在我的平板电脑上对其进行了测试,它运行良好。但是,有人告诉我,不同的设备对 StageOrientation 值的处理方式不同。在某些情况下,StageOrientation.DEFAULT 是纵向的,而在其他情况下,它是横向的。这将使上面的代码与我想做的完全相反。但不知道是真是假。

有人可以确认吗?不同的设备对 StageOrientation 值的处理方式是否不同?

4

2 回答 2

3

要强制应用程序进入横向模式(同时允许它上下颠倒),只需使用:

stage.setAspectRatio(StageAspectRatio.LANDSCAPE);

并确保将您的 AIR SDK 至少更新到 3.7(或 3.8 beta)。我在这个问题上花了很多时间,但没有任何成功 - 但只是更新 SDK 为我解决了这个问题。

于 2013-07-18T11:48:43.983 回答
0

您可以尝试这样做以确保景观:

stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, orientationChanging);

private function orientationChanging(e:StageOrientationEvent)
{
    //if already in landscape, ignore change
    if (stage.stageWidth>stage.stageHeight)
    {
        e.preventDefault();
    }
}
于 2013-07-13T17:15:37.323 回答