0

对于 的实例SCNAction,我们可以指定属性timingMode。我们可以将其指定为SCNActionTimingModeEaseInEaseOut。似乎这还不够,为了使其工作,我们还必须指定timingFunction(对吗?)。这个timingFunction 块会是什么样子?大多数计时函数示例都有 4 个参数;这个函数只有一个时间。

4

1 回答 1

2

计时功能和计时模式共同决定了动作动画的实际计时曲线。

  • 如果您只想要线性、缓入、缓出或缓入缓出时序,请timingMode适当设置该属性timingFunction并不要理会(将其设置为nil)。

  • 仅当您想要自定义超出这四个选项的时序曲线时,才需要同时设置模式和功能。当你这样做时,模式决定了输入的曲线timingFunction

这更容易以图形方式解释......这是使用LinearEaseInEaseOut计时模式获得的动画曲线,没有计时功能: 线性时序曲线 缓入缓出曲线

现在,假设您想要二次计时,其中动画的进度与时间的平方成正比(非常适合模拟重力)。您可以通过保持计时模式线性并将计时功能设置为返回的块/闭包来做到这一点time * time平方线性时序曲线

使用这种组合,您的计时函数会采用随时间线性变化的输入。但是,如果将计时模式设置为其他模式,计时函数的输入将不是线性的。以下是计时模式为 时的相同time * time功能EaseInEaseOut平方缓入缓出曲线

于 2014-08-14T19:33:53.827 回答