本文实例讲述了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缓动算法的使用实例分析