1、tween类
Flash提供了Tween类,该类主要应用于效果。
其具体用法为:
import mx.transitions.Tween;
var someTweenID = new Tween(object, property, function, begin, end, duration, useSeconds);
其具体参数意义如下:
Objec:用来产生Tween效果的movieClip的引用名;
property :一个字符串值,应用Tween效果的MovieClip属性名,比如"_x","_y","_alpha"等
function :调用的easing类
begin :数字,属性的初始值
end:数字,属性的末值
duration :过渡持续的桢数或者秒数
useSeconds :布尔值,说明duration的单位是帧(false)还是秒(true)。如果没有指定,默认值为false(帧)
2、Earing类
MX2004支持16种easing效果(准确的说,应该是19种)。
6种easing类别分别为:
Strong
Back
Elastic
Regular
Bounce
None
每一种包括4种easing类型
easeIn
easeOut
easeInOut
easeNone
None和easeNone只能和其他的类别/类型搭配。easing函数用法如下:
mx.transitions.easing.Bounce.easeOut
3、实践
现在,让我们将tween和easing结合起来实践一下。
假设stage上有一个名为ball_mc的movieClip,我们希望ball_mc水平运动,在半秒钟内从x坐标为20处运动到380处,并轻轻的弹跳两下。其写法如下:
var ballTween =
new mx.transitions.Tween(ball_mc, "_x", mx.transitions.easing.Bounce.easeOut, 20, 380, .5, true);
更加规范的写法如下:
function tweenBall() {
easeType = mx.transitions.easing.Bounce.easeOut;
var begin = 20;
var end = 380;
var time = .5;
var mc = ball_mc;
ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time, true);
}
下面的函数增加了一个参数:easing类型
function tweenBall(easeType) {
var begin = 20;
var end = 380;
var time = 20;
var mc = ball_mc;
ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
}
调用的示例:
tweenBall(mx.transitions.easing.Bounce.easeOut);
4、附加的技巧
Macromedia为tween类设置了一个事件:onMotionFinished,另外还有两个方法:yoyo() 和rewind()。
还是用例子来说明:
function tweenBall(easeType) {
var begin = 20;
var end = 380;
var time = 20;
var mc = ball_mc;
ballTween = new mx.transitions.Tween(mc, "_x", easeType, begin, end, time);
ballTween2 = new mx.transitions.Tween(mc, "_y", easeType, begin, end, time);
ballTween.onMotionFinished = function() {
this.yoyo();
};
ballTween2.onMotionFinished = function() {
this.yoyo();
};
}