tweenjs缓动算法的使用实例分析

  

本文实例讲述了tweenjs缓动算法的使用。分享给大家供大家参考,具体如下:

  

这里的tweenjs不是依托于createjs的tewwnjs,而是一系列缓动算法集合。因为本身是算法,可以用在各个业务场景中,这也正是总结学习它的价值所在.tweenjs代码详情:

     /*   * Tween.js   * t:当前时间(当前时间);   * b:开始值(初始值);   * c:价值变化(变化量);   * d:持续时间(持续时间)。   *你可以访问“http://easings.net/zh-cn”的效果   */var渐变={   线性:函数(t, b, c, d) {   返回c * t/d + b;   },   四:{   easeIn:函数(t, b, c, d) {   返回c * (t/d=) * t + b;   },   easeOut:函数(t, b, c, d) {   返回- c * (t/d=) * (2) + b;   },   easeInOut:函数(t, b, c, d) {   如果((t/=d/2) & lt;1)返回c/2 * t * t + b;   返回- c/2 * ((- t) * (2) - 1) + b;   }   },   立方:{   easeIn:函数(t, b, c, d) {   返回c * (t/d=) * t * t + b;   },   easeOut:函数(t, b, c, d) {   返回c * (t/d (t=- 1) * t * t + 1) + b;   },   easeInOut:函数(t, b, c, d) {   如果((t/=d/2) & lt;1)返回c/2 * t * t * t + b;   返回c/2 * (t -=2 * t * t + 2) + b;   }   },   夸脱:{   easeIn:函数(t, b, c, d) {   返回c * (t/d=) * t * t * t + b;   },   easeOut:函数(t, b, c, d) {   返回- c * (t/d (t=- 1) * t * t * t - 1) + b;   },   easeInOut:函数(t, b, c, d) {   如果((t/=d/2) & lt;1)返回c/2 * t * t * t * t + b;   返回- c/2 * (t -=2 * t * t * t - 2) + b;   }   },   五胞胎:{   easeIn:函数(t, b, c, d) {   返回c * (t/d=) * t * t * t * t + b;   },   easeOut:函数(t, b, c, d) {   返回c * (t/d (t=- 1) * t * t * t * t + 1) + b;   },   easeInOut:函数(t, b, c, d) {   如果((t/=d/2) & lt;1)返回c/2 * t * t * t * t * t + b;   返回c/2 * (t -=2 * t * t * t * t + 2) + b;   }   },   sin: {   easeIn:函数(t, b, c, d) {   返回- c *数学。因为(t/d * (Math.PI/2)) + c + b;   },   easeOut:函数(t, b, c, d) {   返回c *数学。罪(t/d * (Math.PI/2)) + b;   },   easeInOut:函数(t, b, c, d) {   返回- c/2 * (Math.cos(数学。π* t/d) - 1) + b;   }   },   世博会:{   easeIn:函数(t, b, c, d) {   返回(t==0) & # 63;b: c *数学。战俘(10 * 2 (t/d - 1)) + b;   },   easeOut:函数(t, b, c, d) {   返回(t==d) & # 63;b + c: c *(数学。战俘(-10 * t/d) + 1) + b;   },   easeInOut:函数(t, b, c, d) {   如果b (t==0)返回;   如果b + c (t==d)返回;   如果((t/=d/2) & lt;1)返回c/2 *数学。战俘(10 * (t - 1)) + b;   返回c/2 *(数学。战俘(-10 * - t) + 2) + b;   }   },   保监会:{   easeIn:函数(t, b, c, d) {   返回- c *(数学。√1 - (t/d=) * t) - 1) + b;   },   easeOut:函数(t, b, c, d) {   返回c *数学。√1 - t/d (t=- 1) * t) + b;   },   easeInOut:函数(t, b, c, d) {   如果((t/=d/2) & lt;1)返回- c/2 *(数学。√1 - t * t - 1) + b;   返回c/2 *(数学。√1 - t (t -=2) *) + 1) + b;   }   },   弹性:{   easeIn:函数(t, b, c, d, a, p) {   var年代;   如果b (t==0)返回;   如果(t/d===1)返回b + c;   如果(typeof p==岸ㄒ濉?p=d * 3;   如果(!一个| | & lt;Math.abs (c)) {   s=p/4;   一个=c;   其他}{   s=p/(2 * Math.PI) *数学。正如(c/a);   }   返回(a *数学。战俘(10 * (t -=1)) *数学。sin ((t * d - s) * (2 * Math.PI)/p)) + b;   },   easeOut:函数(t, b, c, d, a, p) {   var年代;   如果b (t==0)返回;   如果(t/d===1)返回b + c;   如果(typeof p==岸ㄒ濉?p=d * 3;   如果(!一个| | & lt;Math.abs (c)) {   一个=c;   s=p/4;   其他}{   s=p/(2 * Math.PI) * Math.asin (c/a);   }   返回(*数学。战俘(-10 * t *数学。sin ((t * d - s) * (2 * Math.PI)/p) + c + b);   },   easeInOut:函数(t, b, c, d, a, p) {   var年代;   如果b (t==0)返回;   如果(t/=d/2==2)返回b + c;   如果(typeof p==岸ㄒ濉?p=d * (。3 * 1.5);   如果(!一个| | & lt;Math.abs (c)) {   一个=c;   s=p/4;   其他}{   s=p/(2 * Math.PI) *数学。正如(c/a);   }   如果(t & lt;1)返回。5 *(*数学。战俘(10 * (t -=1)) *数学。sin ((t * d - s) * (2 * Math.PI)/p)) + b;   返回一个*数学。战俘(-10 * (t -=1)) *数学。sin ((t * d - s) * (2 * Math.PI)/p) * 5 + c + b;   }   },   :{   easeIn:函数(t, b, c, d s) {   如果(typeof s==岸ㄒ濉?s=1.70158;   返回c * t (t/d=) * * ((s + 1) * t - s) + b;   },   easeOut:函数(t, b, c, d s) {   如果(typeof s==岸ㄒ濉?s=1.70158;   返回c * (t/d (t=- 1) * t * ((s + 1) * t + s) + 1) + b;   },   easeInOut:函数(t, b, c, d s) {   如果(typeof s==岸ㄒ濉?s=1.70158;   如果((t/=d/2) & lt;1)返回c/2 * (t * t * (((s *=(1.525)) + 1) * t - s)) + b;   返回c/2 * (t (t -=2) * * (((s *=(1.525)) + 1) * t + s) + 2) + b;   }   },   反弹:{   easeIn:函数(t, b, c, d) {   c - Tween.Bounce返回。easeOut(蒸0 c, d) + b;   },   easeOut:函数(t, b, c, d) {   如果((t/d=) & lt;(1/2.75)){   返回c * (7.5625 * t * t) + b;   }else if (t & lt;(2/2.75)){   返回c * (7.5625 * (t -=(1.5/2.75)) * t +炮)+ b;   }else if (t & lt;(2.5/2.75)){   返回c * (7.5625 * (t -=(2.25/2.75)) * t + .9375) + b;   其他}{   返回c * (7.5625 * (t -=(2.625/2.75)) * t + .984375) + b;   }   },   easeInOut:函数(t, b, c, d) {   如果(t & lt;d/2) {   Tween.Bounce返回。easeIn (t * 2 0 c, d) * 5 + b;   其他}{   Tween.Bounce返回。easeOut (t * 2 - d 0 c, d) * 5 * 5 + b + c;   }   }   }   }   数学。渐变=渐变;      

tweenjs缓动算法的使用实例分析