`
zhangyaochun
  • 浏览: 2595652 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

动画脚本Tween

 
阅读更多

贴上一个Tween的源码。

 

var Tween = {
	Linear: function(t,b,c,d){ return c*t/d + b; },
	Quad: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t + b;
		},
		easeOut: function(t,b,c,d){
			return -c *(t/=d)*(t-2) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t + b;
			return -c/2 * ((--t)*(t-2) - 1) + b;
		}
	},
	Cubic: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return c*((t=t/d-1)*t*t + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t + b;
			return c/2*((t-=2)*t*t + 2) + b;
		}
	},
	Quart: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
			return -c/2 * ((t-=2)*t*t*t - 2) + b;
		}
	},
	Quint: {
		easeIn: function(t,b,c,d){
			return c*(t/=d)*t*t*t*t + b;
		},
		easeOut: function(t,b,c,d){
			return c*((t=t/d-1)*t*t*t*t + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
			return c/2*((t-=2)*t*t*t*t + 2) + b;
		}
	},
	Sine: {
		easeIn: function(t,b,c,d){
			return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
		},
		easeOut: function(t,b,c,d){
			return c * Math.sin(t/d * (Math.PI/2)) + b;
		},
		easeInOut: function(t,b,c,d){
			return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
		}
	},
	Expo: {
		easeIn: function(t,b,c,d){
			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
		},
		easeOut: function(t,b,c,d){
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		},
		easeInOut: function(t,b,c,d){
			if (t==0) return b;
			if (t==d) return b+c;
			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
		}
	},
	Circ: {
		easeIn: function(t,b,c,d){
			return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
		},
		easeOut: function(t,b,c,d){
			return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
		},
		easeInOut: function(t,b,c,d){
			if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
			return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
		}
	},
	Elastic: {
		easeIn: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		},
		easeOut: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
		},
		easeInOut: function(t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
			return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
		}
	},
	Back: {
		easeIn: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158;
			return c*(t/=d)*t*((s+1)*t - s) + b;
		},
		easeOut: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		},
		easeInOut: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158; 
			if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
			return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
		}
	},
	Bounce: {
		easeIn: function(t,b,c,d){
			return c - Tween.Bounce.easeOut(d-t, 0, c, d) + b;
		},
		easeOut: function(t,b,c,d){
			if ((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			} else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			} else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			} else {
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		},
		easeInOut: function(t,b,c,d){
			if (t < d/2) return Tween.Bounce.easeIn(t*2, 0, c, d) * .5 + b;
			else return Tween.Bounce.easeOut(t*2-d, 0, c, d) * .5 + c*.5 + b;
		}
	}
};
 
分享到:
评论

相关推荐

    tween自动动画

    通常,这样的项目会包含多个示例脚本和说明文档,帮助开发者理解和学习如何使用Tween技术。开发者可以通过研究这些示例,掌握如何在自己的项目中应用Tween动画,提升用户体验。 在实际应用中,Tween动画可以用于...

    tween动画演示

    3. 在游戏引擎中:如Unity、Unreal Engine等,都有内置的Tween系统,开发者可以通过脚本控制对象进行平滑动画。 4. 图形软件:例如Adobe After Effects等专业动画软件,允许设计师制作复杂的Tween动画,然后导出为...

    flash照片浏览(动画和脚本)

    我们可以编写时间轴上的动作脚本,或者使用Tween类创建平滑的动画效果。 4. 导航控制:为了方便用户浏览图片,我们需要提供上一张/下一张按钮。ActionScript可以监听这些按钮的点击事件,当用户点击时,执行相应的...

    UGUI Tween Tool分享

    为了更好地利用这个工具,开发者需要对Unity的UGUI系统有基本的理解,同时也需要掌握C#编程,因为Tween动画的设置主要通过编写脚本来完成。在实践中,可以通过Unity的Inspector窗口预览和调整动画效果,进一步提高...

    Il2CppDumper-v5.0.0.zip_Animation_magnetz4u_tween

    描述 "c# scripts download animation or tween" 表明这个工具或资源可能包含了C#脚本,这些脚本用于下载或处理游戏中的动画或tween效果。在Unity引擎中,C#被广泛用于编写游戏逻辑和控制动画行为。 标签 ...

    flash基于时间帧的动画

    在Flash中,基于时间帧的动画是一种常见的动画制作方法,它允许开发者通过脚本来精确控制动画的时间流逝和帧序列。这种技术尤其适用于那些需要动态交互和复杂动作序列的项目。以下是对这一主题的详细讲解: 一、...

    director 动画引擎 tweenEgine demo

    这个演示可能展示了如何导入tweenEngine库到Director项目中,以及如何利用Lingo脚本调用tweenEngine的函数来创建和控制动画。通过运行这个演示,你可以观察到tweenEngine如何实现平滑的物体运动、变化和过渡,这对于...

    actionscript 3.0动画制作教程

    7. **动画库和类**:除了基本的动画原理,AS3.0还提供了许多内置的动画库和类,如`TweenLite`和`TweenMax`(来自GreenSock),它们提供更高级的缓动函数和更简洁的语法,使得动画制作更加高效。 8. **时间轴和代码...

    flash动画心跳动

    4. **补间动画(Tween Animation)**:在关键帧之间创建补间动画,Flash会自动计算中间帧,使心形在两个关键帧的状态之间平滑过渡,形成跳动的效果。 5. **形状补间与动作补间**:如果心形是矢量图形,可能使用形状...

    Flash CS4动画制作教程

    此外,Flash CS4还提供了形状补间(Shape Tween)和动作补间(Motion Tween)两种动画类型。形状补间允许你在两个关键帧之间转换图形的形状,而动作补间则用于对象的位置、旋转、缩放和透明度等属性的变化。在制作...

    flash动画素材下载

    1. 时间轴操作:熟悉时间轴的层、帧和关键帧管理,理解补间动画(Tween)的概念,包括形状补间和动作补间。 2. 动画基础:掌握图形的变形(Transform)、滤镜(Filters)应用和元件(Symbols)的使用,这些是创建...

    Flash Loading脚本编写加载特效.rar

    "Flash Loading脚本编写加载特效.rar"这个压缩包包含了一个实现动态加载进度和动画效果的示例。以下是关于Flash加载特效、脚本编程以及相关技术的详细知识: 1. **加载过程**:在Flash中,当内容如SWF文件、图片或...

    unigui按钮杠杠动画一

    9. **Tween库**:Unity社区提供了许多第三方Tween库,如DOTween、Lean Tween等,它们可以简化动画的实现,提供更丰富的动画效果。使用这些库可以更方便地控制杠杠的平滑变化。 10. **性能优化**:在实现动画时,应...

    flash简单动画作业

    关键帧(Keyframe)用于标记动画变化的点,而补间动画(Tween Animation)则自动填充关键帧之间的帧,实现平滑过渡。 学习Flash动画,你需要了解基本的绘图工具,如线条、形状、渐变、笔刷等,以及如何编辑这些图形...

    倒计时flash动画素材及源文件

    在倒计时动画中,每一帧可能代表不同的时间值,通过逐帧动画或者补间动画(Tween)技术,可以使数字流畅地从一个数值变化到另一个。 这个压缩包中的"倒计时flash动画效果素材"很可能包含了一系列预设的倒计时动画...

    Flash绳子动画特效.rar

    在实现绳子动画特效时,可能需要使用Tween类来平滑地改变对象属性,或者直接使用AS控制关键帧动画。 在"codesc.net"这个文件中,很可能包含了整个项目的所有源代码和FLA文件。FLA文件是Flash的源文件格式,包含所有...

    二维动画短片创作毕业论文.docx

    它具有强大的动画编辑功能,能够实现动画的关键帧动画、 tween 动画和 sprite 动画等。 4. 二维动画短片的制作过程:二维动画短片的制作过程可以分为三个阶段,前期主要完成剧本创作、人物设计工作;中期进行场景...

    iTween for Unity3D,unity3d缓动类

    可能很多人不理解,既然2.6版本有了动画编辑器,为什么还需要用这个动画脚本呢?原因很简单,iTween最大的特点就是一步到位, 即一个简单函数就能让物体实现一个完整的动画过程,非常方便,而不用通过动画编辑器(虽然更...

    iTween unity3d

    特点: 可能很多人不理解,既然2.6版本有了动画编辑器,为什么还需要用这个动画脚本呢?原因很简单,iTween最大的特点就是一步到位, 即一个简单函数就能让物体实现一个完整的动画过程,非常方便,而不用通过动画编辑器...

Global site tag (gtag.js) - Google Analytics