方向旋转有时偏离角度。

我正在通过一本书学习,并且处理方向变化。我不明白为什么会发生这种情况:当我通过 Corona 模拟器测试我的应用程序时,如果我快速旋转屏幕上的对象,它的角度就会变得不稳定。以下是我的代码:

点赞
用户1979583
用户1979583

这主要是由于正在进行的转换所导致的。因此,在调用另一个转换之前,必须停止某些转换。所以:

首先,在function onOrientationChange(event)的上方,初始化一个包含转换的数组。

  local trans = {}

然后命名所有转换:

  -- 在第一个 if 中 --
  trans [1] = transition.to(landscape,{time = 150,rotation = newAngle})
  trans [2] = transition.to(portrait,{rotation = newAngle})
  ...
  ...
  --在第二个if中 --
  trans [3] = transition.to(portrait,{time = 150,rotation = newAngle})
  trans [4] = transition.to(landscape,{rotation = newAngle})

然后,在下面一行:“local newAngle = landscape.rotation - event.delta”之下停止所有转换,并将旋转直接设置为值= newAngle

  -- 在第一个if中(在 'trans [1] =转换到...' 上方)--
  for i = 1,4 do if(trans [i])然后取消转换(trans [i])结束
  portrait.rotation = newAngle
  ...
  ...
  --在第二个if中(在 'trans [3] =转换到...' 上方)--
  for i = 1,4 do if(trans [i])则转换(转换[i])结束
  landscape.rotation = newAngle

注意:这里我取消了所有正在进行的转换后才调用了另一个转换。通常,您只需要取消正在进行的转换即可。

保持编码...... :)

2014-02-12 22:26:15