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

时间:2014-02-04 04:42:38

标签: ios lua corona

我注意到启动应用程序的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 ) -- gives wrong answer on iphone5S but not ipad2 or ipad Mini ?

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

我基本上必须旋转5S才能开始获得正确的方向细节,默认情况下,山雀总是说“肖像”。你可以想象在iphone5S上最少运行我的应用程序很烦人。

使用版本:版本2013.2100(2013.12.7)

1 个答案:

答案 0 :(得分:0)

好的。

iPad你可以信任system.orientation ...但iPhone你必须等待第一个"方向"在你可以信任之前改变!假设您的代码中有一个类似的设备类型,

if (deviceType.isApple and not deviceType.is_iPad) then
    system.setAccelerometerInterval(100)   -- Make sure we capture first orientation change by ramping up the sample to 100Hz
    Runtime:addEventListener("orientation", initialOrientationSet) -- capture this first change
else
  -- Launch your app
end

在initialOrientationSet内执行此操作:

function initialOrientationSet ()
  Runtime:removeEventListener("orientation", initialOrientationSet)
  system.setAccelerometerInterval (10) -- save some battery power
  -- Launch you app
end

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

干杯