0

如何在 Android 上的 Corona SDK 中检测仅横向应用程序的方向变化?

我注意到以下内容不起作用:

  • 使用方向事件将不起作用 - 这表明在 LandscapeLeft 到 LandscapeRight 之间切换时不会产生方向事件,反之亦然(即应用程序不支持纵向)

  • 使用“resize”事件不起作用 - 它只发生在同时支持纵向和横向方向的应用程序中

因此,主要问题:如何在 Android 上的 Corona SDK 中检测仅横向应用程序的方向变化?

更新:实际上有些令人担忧的是,我刚刚确认在 Android 上(在我的新 Nexus 7 上),当我将设备倒置时,“system.orientation”不会改变。那就是它停留在“landscapeRight”上。那么这会是电晕错误吗?唯一的解决办法是不允许用户能够倒置/使用游戏,那么不是吗?(即在横向左)

4

2 回答 2

1

如果您的应用仅支持横向模式,Corona 不会区分 LandscapeLeft 和 LandscapeRight。项目构建设置文档 ( http://docs.coronalabs.com/guide/distribution/buildSettings/index.html ) 声明:

4.在Android 2.2中,如果你通过支持landscapeRight和landscapeLeft来构建一个纯横向的应用程序,它永远不会在landscapeLeft模式下显示。同样,如果您通过支持 Portrait 和 PortraitUpsideDown 构建一个仅纵向应用程序,它永远不会显示为 PortraitUpsideDown。这是 Android 2.2 的限制。

我创建了一个小项目,可以确认在我的 Nexus4 上使用 Android 4.3,“orientation”事件也不会被调用(尽管它在模拟器中工作)。

然后回答您的问题:您无法检测仅横向应用程序的方向变化。它似乎不是 Corona 错误,而是 Android 限制。

于 2013-11-09T14:30:04.417 回答
0

目前在 Android 设备上,仅当在 build.settings 文件中启用自动旋转时才会生成方向事件。

于 2014-02-12T18:01:21.607 回答