对于 的实例SCNAction
,我们可以指定属性timingMode
。我们可以将其指定为SCNActionTimingModeEaseInEaseOut
。似乎这还不够,为了使其工作,我们还必须指定timingFunction
(对吗?)。这个timingFunction 块会是什么样子?大多数计时函数示例都有 4 个参数;这个函数只有一个时间。
问问题
722 次
1 回答
2
计时功能和计时模式共同决定了动作动画的实际计时曲线。
如果您只想要线性、缓入、缓出或缓入缓出时序,请
timingMode
适当设置该属性timingFunction
并不要理会(将其设置为nil
)。仅当您想要自定义超出这四个选项的时序曲线时,才需要同时设置模式和功能。当你这样做时,模式决定了输入的曲线
timingFunction
。
这更容易以图形方式解释......这是使用Linear
和EaseInEaseOut
计时模式获得的动画曲线,没有计时功能:
现在,假设您想要二次计时,其中动画的进度与时间的平方成正比(非常适合模拟重力)。您可以通过保持计时模式线性并将计时功能设置为返回的块/闭包来做到这一点time * time
:
使用这种组合,您的计时函数会采用随时间线性变化的输入。但是,如果将计时模式设置为其他模式,计时函数的输入将不是线性的。以下是计时模式为 时的相同time * time
功能EaseInEaseOut
:
于 2014-08-14T19:33:53.827 回答