在iPhone上,Corona SDK的system.orientation返回错误值?

我注意到在启动应用程序时,system.orientation会将iphone5S的默认方向定义为build.settings中定义的默认方向。我已经在iPad2和iPadMini上测试了相同的代码并获得了正确的答案,但是在iPhone5S上,无论应用程序启动时处于哪个方向,我始终得到build.settings的默认设置。有什么提示或想法吗?

build.settings

orientation = {
    default = "portrait",
    supported = {
        "landscapeLeft", "landscapeRight", "portrait", "portraitUpsideDown"
    }
}

main.lua

print ( system.orientation ) -- 在iPhone5S上给出错误答案,但在iPad2或iPad Mini上没有?

我使用print作为示例,实际上将字符串发送到设备屏幕上。

我基本上必须旋转5S才能开始获取正确的方向细节,默认情况下,始终显示“portrait”。可以想象,在iPhone5S上运行我的应用程序非常烦人。

使用构建:版本2013.2100(2013.12.7)

点赞
用户1734878
用户1734878

iPad可以信任system.orientation...但是在iPhone上,您必须等待第一个“方向”变化发生后才能信任它!!假设您的代码中有一个deviceType类似于这样的设备类型,

if (deviceType.isApple and not deviceType.is_iPad) then
system.setAccelerometerInterval(100) --确保我们通过将采样率提高到100Hz来捕捉第一次方向变化
Runtime:addEventListener("orientation", initialOrientationSet) --捕捉这个第一次变化
else
--启动您的应用程序
end

在initialOrientationSet内部执行以下操作:

function initialOrientationSet()
Runtime:removeEventListener("orientation", initialOrientationSet)
system.setAccelerometerInterval(10) --节约电池电量
-- 启动您的应用程序
end

此外,您还必须测试模拟器并正常启动。

干杯

2014-04-21 03:13:07