2012-04-16 48 views
15

在这个伟大的web page我找到了一个缓动算法的列表,可以给我的网页添加很好的视觉吸引力。尽管如此,我发现了函数参数的简要提及(参见下文),算法并不像我所希望的那样工作。我可以请求解释什么值/范围应该被输入到下面提到的函数的参数中?缓解立方 - 函数参数解释

参数列表:

  • T:当前时间 - 在这里应该值0〜1,或者当前帧的实数?
  • B:起始值 - I假设,开始X或Y的对象的坐标被移动
  • C:变化值 - 可以在这里是1号的所有对所有帧的时间?
  • d:持续时间 - 总数的帧数?

Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; };

应的值来递增地添加到从所述函数而获得的最后一个值,或者它们应该被添加到所述初始位置0?

+1

此链接非常详细地解释了我的问题:http://upshots.org/actionscript/jsas-understanding-easing – 2012-05-04 09:21:42

回答

15

您是对的,d为持续时间,t为当前时间。因此,t应该从0d

c是一个总的变化,应该等于end value - start value

  • t = 0,我们有c*(-1 + 1) + bb
  • 对于t = d我们c*(0 + 1) + bb + c

功能可以给任何FPS一样,这取决于你如何经常更新的位置和调用函数。

+0

+1,您好,感谢您的重新申请。当我回家时,我会尝试使用新的信息的公式。 ** b(起始值)也可以是一个负数吗?**说,如果我想将物体从屏幕外移出,即从-50y到250y。我不知道这个公式是否也会以这种方式工作。 – 2012-04-16 10:09:25

+0

是的。只有当你将't'从0改为某个负值时,它才会按照预期的方式工作。 – kirilloid 2012-04-16 10:11:22

+0

我可以证实,在正确理解函数参数后,2d对象的行为就像他们真正应该轻松实现的一样。因此,我将您的答案确定为*接受答复*。 – 2012-04-16 20:53:30