[像风一样自由:AS入门教程第7课影片剪辑第8节-AS实现补间动画 [本文已收录教程库] - Flash互...
来源:百度文库 编辑:中财网 时间:2024/05/07 08:55:14
',1)">
flash mx.transitions.Tween类可以实现类似补间动画的效果。要使用Tween类,首先还是将它导入:
import mx.transitions.Tween;
然后用new Tween()方法即可实现。New Tween()方法格式:
new Tween(要应用补间的MC,要应用补间的MC的属性,缓动效果,属性的初始值,属性的结束值,补间的长度,补间长度的类型)
下面介绍一下new Tween()方法的参数:
要应用补间的MC:这个就是要应用补间的MC罗。
要应用补间的MC的属性:补间动画实际就是用一定的时间改变对象的属性,比如位移就是改变_x或_y属性,还有其它的如_xscal、_alpha等。这里就是指这些属性的名称。
缓动效果:在上一节我们已经介绍了。
属性的初始值:比如要用补间的是_x属性,我们要建立对象从舞台左边移到右边的补间动画,那么_x的初始值就应很小,比如0,10,50等,即对象在舞台左边时的_x值。
属性的结束值:补间结束时属性的值,比如对象移到舞台右边时的_x的值。
补间的长度:可以有两种表示方式:秒或帧,但这里只是一个数值,是用秒还是用帧来计算补间由后面一个参数来决定。
补间长度的类型:决定是用秒还是用帧来计算补间,如果为true则用秒来计算,如果为false则用帧来计算。
下面我们来制作我们的第一个补间动画,让一个小球从舞台的左边移到右边:
画一个球吧,转换为MC,实例名称为:ball_mc.
打开帧动作面板,输入如下代码: import mx.transitions.Tween;
import mx.transitions.easing.*; //因为在用到缓动效果,所以将缓动类也导入
new Tween(ball_mc, "_x", None.easeNone, 20,500,3,true);
复制代码
测试影片,小球将从左边(20像数处)移到右边(500像素处),用时3秒。
上面这个效果没有用缓动效果,我们回忆一下上一节介绍的缓动效果,似乎有一个叫Regular的缓动类,它将实现减慢的效果,我们给它调用easeIn方法,即在补间开始时减慢,这样是不是就实现了从慢到快的效果呢?将代码改成下面的: import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(ball_mc, "_x",Regular.easeIn, 20,500,40,false);
复制代码
测试影片,我们看到小球由慢到快从左边移到右边。在这段代码中,改变了三个参数,一个是缓动效果,一个是补间长度用了40,再一个就长度类型用了false,这样这个补间长度不再是3秒,而是40帧。
onMotionFinished事件:Tween类的onMotionFinished事件在补间动画完成时调用。在后面来练习它的用法。
continueTo() 方法:继续执行补间动画,它以原补间动画属性的结束值作为开始值。这个方法重新指定结束值和补间长度。也就是说在原补间动画的结束点上重新开始新的动画。
利用上面的事件和方法可使动画往返运动。
将代码改为下面的: import mx.transitions.Tween;
import mx.transitions.easing.*;
vae mytween:Tween = new Tween(ball_mc, "_alpha",Nonse.easeNonse, 0,100,3,true);
mytween. onMotionFinished = function(){
mytween. continueTo(0,3)
}
复制代码
测试影片,你会看到小球淡入然后又淡出的过程。
这段代码,我们做透明度的补间动画,使透明度用3秒时间从0变为100,当补间结束时,调用onMotionFinished事件代码,用continueTo(0,3)方法又用3秒时间将透明度由100(刚才补间的结束值)变为0。因为要调用Tween的事件和方法,所以我们声明了一个Tween类mytween,这一点也与上面的代码不一样。
yoyo()方法:
上面的代码虽然实现了,透明度由0到100,然后又从100回到0的动画,但回到0后,动画就停止了。我们常常需要不停的往返运动,比如闪烁的星星,跳动的心脏等。那么Tween类为我们提供了yoyo()方法,这个方法在补间结束时,将初始值变为结束值,将结束值变为初始值,再次进行补间,如此往返永不停止。
记得一个红星跳动的表情吗?我们现在来制作它:
画一个红星,转换为MC,实例名称为:hx_mc.
帧动作代码: import mx.transitions.Tween;
import mx.transitions.easing.*;
var mytween:Tween = new Tween(hx_mc, "_xscale",Nonse.easeNonse, 80,100,0.5,true);
mytween.onMotionFinished = function(){
mytween.yoyo()
}
复制代码
测试影片,我们看到了一个跳动的红星。看到这个效果,我突然发现,如果把红星换成一只蝴蝶,那不就让蝴蝶飞起来了吗?
这个例子应用补间的属性是_xscale.
下面我们来制用一个弹性菜单的练习,完成本节上面的动画:
首先来做弹性菜单,做4个MC,比较简单,画一个黄色的矩形,如果你高兴,当然可以用其它颜色,在矩形上面放一个静态文本,内容分别是:“加速滚动的球”,“闪烁的星”,“跳动的红心”,“飞动的蝴蝶”。
有两点要注意:1.将字打散(两次),因为文本框在放大时会保持长宽比例,而我们弹出菜单时只需要改变高度,所以必须将文本打散。
2.因为菜单是向下弹开(增加高度),因此,元件必须上对齐。即上边与十字对齐。
3.矩形的高度为20,如果你的高度不是20,那么下面的代码就要作相应改变。
4个元件做好后,将它们拖到舞台上,放好。实例名称为: cd1,cd2,cd3,cd4
然后打开帧动作面板,输入如下代码: import mx.transitions.Tween;
import mx.transitions.easing.*;
var cdtween:Tween;
function tc(cd) {
cdtween = new Tween(cd, "_height",Bounce.easeOut, 20,60,2,true);
}
cd1.onRollOver = function(){
tc(this);
}
cd1.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd2.onRollOver = function(){
tc(this);
}
cd2.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd3.onRollOver = function(){
tc(this);
}
cd3.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd4.onRollOver = function(){
tc(this);
}
cd4.onRollOut = function(){
cdtween.continueTo(20,1);
}
复制代码
测试影片,一个弹性菜单就做好了。
以前我们说过,如果要多次使用的代码,最好做成函数,弹出菜单的代码在4个菜单项上都要调用,所以我们将它做成函数tc.这个函数,用Tween类使菜单MC,的高度在2秒内由20变成60,达到弹出的效果,缓动则菜用了Bounce.easeOut,在菜单展开后产生一个弹跳的效果。在函数外声明Tween对象:var cdtween:Tween;是为了在鼠标移出菜单时能够调用它。
接下来的代码是,在鼠标移动菜单上时,调用tc 使菜单弹出。在鼠标移出菜单时,调用Tween类的continueTo()方法,使菜单收回去。
接下来用上面介绍的内容,做4个MC,分别是,一个加速运动的小球,一个闪烁的星,一个跳动的红心,一个飞动的蝴蝶。在库中点右键,打开连接面板,为这4个MC取标识名:ballmc(小球),xingmc(星),hxmc(红心),hdmc(蝴蝶)。
回到主场景,打开帧动作面板,接着上面的代码,在每个菜单项上,添加点击加载相应mc的命令。 cd1.onRelease = function(){
attachMovie("ballmc","ball_mc",1)
ball_mc._y =200;
}
cd2.onRelease = function(){
attachMovie("hxmc","hx_mc",1)
hx_mc._y = 200;
hx_mc._x =260;
}
cd3.onRelease = function(){
attachMovie("xingmc","xing_mc",1)
xing_mc._x = 260;
xing_mc._y =200;
}
cd4.onRelease = function(){
attachMovie("hdmc","hd_mc",1)
hd_mc._x = 260;
hd_mc._y =200;
}
复制代码
OK,试试吧。
flash mx.transitions.Tween类可以实现类似补间动画的效果。要使用Tween类,首先还是将它导入:
import mx.transitions.Tween;
然后用new Tween()方法即可实现。New Tween()方法格式:
new Tween(要应用补间的MC,要应用补间的MC的属性,缓动效果,属性的初始值,属性的结束值,补间的长度,补间长度的类型)
下面介绍一下new Tween()方法的参数:
要应用补间的MC:这个就是要应用补间的MC罗。
要应用补间的MC的属性:补间动画实际就是用一定的时间改变对象的属性,比如位移就是改变_x或_y属性,还有其它的如_xscal、_alpha等。这里就是指这些属性的名称。
缓动效果:在上一节我们已经介绍了。
属性的初始值:比如要用补间的是_x属性,我们要建立对象从舞台左边移到右边的补间动画,那么_x的初始值就应很小,比如0,10,50等,即对象在舞台左边时的_x值。
属性的结束值:补间结束时属性的值,比如对象移到舞台右边时的_x的值。
补间的长度:可以有两种表示方式:秒或帧,但这里只是一个数值,是用秒还是用帧来计算补间由后面一个参数来决定。
补间长度的类型:决定是用秒还是用帧来计算补间,如果为true则用秒来计算,如果为false则用帧来计算。
下面我们来制作我们的第一个补间动画,让一个小球从舞台的左边移到右边:
画一个球吧,转换为MC,实例名称为:ball_mc.
打开帧动作面板,输入如下代码: import mx.transitions.Tween;
import mx.transitions.easing.*; //因为在用到缓动效果,所以将缓动类也导入
new Tween(ball_mc, "_x", None.easeNone, 20,500,3,true);
复制代码
测试影片,小球将从左边(20像数处)移到右边(500像素处),用时3秒。
上面这个效果没有用缓动效果,我们回忆一下上一节介绍的缓动效果,似乎有一个叫Regular的缓动类,它将实现减慢的效果,我们给它调用easeIn方法,即在补间开始时减慢,这样是不是就实现了从慢到快的效果呢?将代码改成下面的: import mx.transitions.Tween;
import mx.transitions.easing.*;
new Tween(ball_mc, "_x",Regular.easeIn, 20,500,40,false);
复制代码
测试影片,我们看到小球由慢到快从左边移到右边。在这段代码中,改变了三个参数,一个是缓动效果,一个是补间长度用了40,再一个就长度类型用了false,这样这个补间长度不再是3秒,而是40帧。
onMotionFinished事件:Tween类的onMotionFinished事件在补间动画完成时调用。在后面来练习它的用法。
continueTo() 方法:继续执行补间动画,它以原补间动画属性的结束值作为开始值。这个方法重新指定结束值和补间长度。也就是说在原补间动画的结束点上重新开始新的动画。
利用上面的事件和方法可使动画往返运动。
将代码改为下面的: import mx.transitions.Tween;
import mx.transitions.easing.*;
vae mytween:Tween = new Tween(ball_mc, "_alpha",Nonse.easeNonse, 0,100,3,true);
mytween. onMotionFinished = function(){
mytween. continueTo(0,3)
}
复制代码
测试影片,你会看到小球淡入然后又淡出的过程。
这段代码,我们做透明度的补间动画,使透明度用3秒时间从0变为100,当补间结束时,调用onMotionFinished事件代码,用continueTo(0,3)方法又用3秒时间将透明度由100(刚才补间的结束值)变为0。因为要调用Tween的事件和方法,所以我们声明了一个Tween类mytween,这一点也与上面的代码不一样。
yoyo()方法:
上面的代码虽然实现了,透明度由0到100,然后又从100回到0的动画,但回到0后,动画就停止了。我们常常需要不停的往返运动,比如闪烁的星星,跳动的心脏等。那么Tween类为我们提供了yoyo()方法,这个方法在补间结束时,将初始值变为结束值,将结束值变为初始值,再次进行补间,如此往返永不停止。
记得一个红星跳动的表情吗?我们现在来制作它:
画一个红星,转换为MC,实例名称为:hx_mc.
帧动作代码: import mx.transitions.Tween;
import mx.transitions.easing.*;
var mytween:Tween = new Tween(hx_mc, "_xscale",Nonse.easeNonse, 80,100,0.5,true);
mytween.onMotionFinished = function(){
mytween.yoyo()
}
复制代码
测试影片,我们看到了一个跳动的红星。看到这个效果,我突然发现,如果把红星换成一只蝴蝶,那不就让蝴蝶飞起来了吗?
这个例子应用补间的属性是_xscale.
下面我们来制用一个弹性菜单的练习,完成本节上面的动画:
首先来做弹性菜单,做4个MC,比较简单,画一个黄色的矩形,如果你高兴,当然可以用其它颜色,在矩形上面放一个静态文本,内容分别是:“加速滚动的球”,“闪烁的星”,“跳动的红心”,“飞动的蝴蝶”。
有两点要注意:1.将字打散(两次),因为文本框在放大时会保持长宽比例,而我们弹出菜单时只需要改变高度,所以必须将文本打散。
2.因为菜单是向下弹开(增加高度),因此,元件必须上对齐。即上边与十字对齐。
3.矩形的高度为20,如果你的高度不是20,那么下面的代码就要作相应改变。
4个元件做好后,将它们拖到舞台上,放好。实例名称为: cd1,cd2,cd3,cd4
然后打开帧动作面板,输入如下代码: import mx.transitions.Tween;
import mx.transitions.easing.*;
var cdtween:Tween;
function tc(cd) {
cdtween = new Tween(cd, "_height",Bounce.easeOut, 20,60,2,true);
}
cd1.onRollOver = function(){
tc(this);
}
cd1.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd2.onRollOver = function(){
tc(this);
}
cd2.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd3.onRollOver = function(){
tc(this);
}
cd3.onRollOut = function(){
cdtween.continueTo(20,1);
}
cd4.onRollOver = function(){
tc(this);
}
cd4.onRollOut = function(){
cdtween.continueTo(20,1);
}
复制代码
测试影片,一个弹性菜单就做好了。
以前我们说过,如果要多次使用的代码,最好做成函数,弹出菜单的代码在4个菜单项上都要调用,所以我们将它做成函数tc.这个函数,用Tween类使菜单MC,的高度在2秒内由20变成60,达到弹出的效果,缓动则菜用了Bounce.easeOut,在菜单展开后产生一个弹跳的效果。在函数外声明Tween对象:var cdtween:Tween;是为了在鼠标移出菜单时能够调用它。
接下来的代码是,在鼠标移动菜单上时,调用tc 使菜单弹出。在鼠标移出菜单时,调用Tween类的continueTo()方法,使菜单收回去。
接下来用上面介绍的内容,做4个MC,分别是,一个加速运动的小球,一个闪烁的星,一个跳动的红心,一个飞动的蝴蝶。在库中点右键,打开连接面板,为这4个MC取标识名:ballmc(小球),xingmc(星),hxmc(红心),hdmc(蝴蝶)。
回到主场景,打开帧动作面板,接着上面的代码,在每个菜单项上,添加点击加载相应mc的命令。 cd1.onRelease = function(){
attachMovie("ballmc","ball_mc",1)
ball_mc._y =200;
}
cd2.onRelease = function(){
attachMovie("hxmc","hx_mc",1)
hx_mc._y = 200;
hx_mc._x =260;
}
cd3.onRelease = function(){
attachMovie("xingmc","xing_mc",1)
xing_mc._x = 260;
xing_mc._y =200;
}
cd4.onRelease = function(){
attachMovie("hdmc","hd_mc",1)
hd_mc._x = 260;
hd_mc._y =200;
}
复制代码
OK,试试吧。
谁知道在FLASH中怎么样用AS定义一个影片剪辑的中心点吗 ?
as as
谁知道全金属狂潮3第5话中救了宗介的那部AS是什么啊?
亚视达AS-2112
as precious as
as........as表示什么
as ...as的用法
As Long As Love
not as as 造句
as soon as possible
as soon as 是什么意思?
as soon as 翻译
as white as是什么
as soon as possible
有关as...as 的...
As early as 1647..
影片的第二部
法国影片 第八天
so...as与as...as的区别
as是什么意思?
while&as
什么是as.?
as good as 与 as well as的区别
as 是什么意思