flash中的Tween类

Tween 类允许您轻松地在舞台上移动、缩放和淡入淡出影片剪辑。mx.transitions.Tween 类的构造函数有以下参数名称和类型:

function Tween(obj, prop, func, begin, finish, duration, useSeconds) {

// 代码……

}

obj Tween 实例的目标影片剪辑对象。

prop obj 中值要补间的属性的字符串名称。

func 为补间对象的属性值计算缓动效果的缓动方法。

begin 一个指示 prop(要补间的目标对象属性)的开始值的数字。

finish 一个指示 prop(要补间的目标对象属性)的结束值的数字。

duration 一个数字,指示补间动画的时间长度。如果省略,duration 会默认设置为 infinity。

useSeconds 与您在 duration 参数中指定的值相关的一个布尔值,如果该值为 true,则指示使用秒,如果为 false,则使用帧。

例如,假设您想让一个影片剪辑通过舞台。您可以向主时间轴上添加关键帧,并在这些帧之间插入补间动画或补间形状;可以在 onEnterFrame 事件处理函数中编写一些代码实现;或者可以使用 setInterval() 函数每隔一段时间就调用一个函数而加以实现。如果您使用 Tween 类,则可以通过另外一种方法来修改影片剪辑的 _x 和 _y 属性。您还可以添加前面介绍的缓动方法。若要利用 Tween 类,可以使用下面的 Actionscript:

new mx.transitions.Tween(ball_mc, "_x", mx.transitions.easing.Elastic.easeOut, 0, 300, 3, true);

此 Actionscript 代码片断创建了 Tween 类的一个新实例,它使 ball_mc 影片剪辑在舞台上沿 x 轴(从左到右)运动。该影片剪辑在 3 秒钟的时间内从 0 像素移动到 300 像素,并且 Actionscript 应用了一种弹性缓动方法。这意味着在以流畅的效果向回移动之前,球沿着 x 轴运动了 300 像素。

使用方法:

如果在您的 Flash 文档中的不止一处地方要使用 Tween 类,则可以选用 import 语句。它允许您导入 Tween 类和缓动方法,而不用每次使用它们时都给出完全限定类名,如下面的过程所示。

导入和使用 Tween 类:

・六种easing class类

*Back:在一个或两个结束点过渡范围之外的扩展动画,类似溢出效果.

*Bounce:在一个或两个结束点过渡范围内加入回弹效果,回弹的多少决定于duration延持时间的多少.长的延持回弹的次数就相对多.

*Elistic:发生在一个或两个结束点过渡范围之外的弹性效果,弹性的力度不受duration的影响.

*Regular:在一个或两个结束点加入减速动作.这个特性可以帮你做出超速可减速的效果.

*Strong: 在一个或两个结束点加入减速动作,这个效果有些类似Regular.不同的地方在于比较明显.

*None:从开始点到结束点加入恒定的运动,没有效果.

・以上六种easing class类每个又包含有三种easing method方式.

easeIn:在过渡的开始阶断产生easing效果.

easeOut:在过渡的结束阶断产生easing效果.

easeInOut:在开始和结束阶断均产生easing效果.

创建一个新文档,并将其命名为 easeTween.fla。

在舞台上创建一个影片剪辑。

选择影片剪辑实例,并在属性检查器的"实例名称"文本框中键入 ball_mc。

在时间轴中选择第 1 帧,在"动作"面板中,添加下面的代码:

import mx.transitions.Tween;

import mx.transitions.easing.*;

new Tween(ball_mc, "_x", Elastic.easeOut, Stage.width, 0, 3, true);

此代码示例使用两个 import 语句。第一个语句只导入 mx.transitions.Tween 类,第二个 import 语句使用通配符 (*) 快捷方式通过使用单行代码导入六个缓动类。第二个语句可导入整个类包。

选择"控制">"测试影片",以查看动画。

Flash 文档将包 定义为"包含一个或多个类文件并位于指定的类路径目录中的目录"。在本例中,包位于 C:\Program Files\Macromedia\Flash 8\语言\First Run\Classes\mx\transitions\easing 文件夹中 (Windows),或位于 HD:Applications:Macromedia Flash 8:First Run:Classes:mx:transitions:easing 中 (Macintosh)。导入整个包比分别导入六个类好得多,您想必也同意这一点。Actionscript 可以直接引用 Tween 类,而不必引用 mx.transitions.Tween 类。同样,对于缓动类而言就不必使用完全限定类名,如 mx.transitions.easing.Elastic.easeOut,您可以在 Actionscript 代码内键入 Elastic.easeOut。有关更多信息,请参见使用滤镜包。

通过使用类似的代码,您可以设置 _alpha 属性(而非 _x 属性)来淡入淡出实例,如接下来的过程所示。

使用 Tween 类淡化实例:

创建一个新文档,并将其命名为 fadeTween.fla。

在舞台上创建一个影片剪辑。

选择影片剪辑实例,并在属性检查器的"实例名称"文本框中键入 ball_mc。

在时间轴中选择第 1 帧,在"动作"面板中添加下面的代码:

import mx.transitions.Tween;

import mx.transitions.easing.*;

new Tween(ball_mc, "_alpha", Strong.easeIn, 100, 0, 3, true);

现在,ball_mc 不在舞台上移动了,而是在三秒钟内从 100% 可见淡化为完全透明。若要使元件更快地淡出,请将 duration 参数从 3 更改为 1 或 2。

选择"控制">"测试影片",以查看动画。

如果更改文档的帧频,动画将播放得更平滑。有关动画和帧频的信息,请参见关于动画和帧频。

除了使用秒之外,您还可以通过几个帧来淡化元件。若要在 Tween 类中将持续时间设置为帧数而不是秒数,可以将最后一个参数 useSeconds 从 true 更改为 false。将该参数设置为 true 时,就告诉 Flash 指定的持续时间以秒为单位。若将该参数设置为 false,则持续时间是您希望用于补间的帧的数量。接下来的过程演示如何将补间设置为帧数而不是秒数。

将持续时间设置为帧数而不是秒数:

创建一个新文档,并将其命名为 framesTween.fla。

在舞台上创建一个影片剪辑。

选择影片剪辑实例,并在属性检查器的"实例名称"文本框中键入 ball_mc。

在时间轴中选择第 1 帧,在"动作"面板中,添加下面的代码:

import mx.transitions.Tween;

import mx.transitions.easing.*;

new Tween(ball_mc, "_alpha", Strong.easeIn, 100, 0, 24, false);

此代码使用 Strong.easeIn 缓动方法淡出 ball_mc 实例。不是在三秒内淡化实例,而是通过 24 个帧淡化实例。

选择"控制">"测试影片",以查看动画。

稍等,实例将通过 24 个帧淡出。

返回到创作环境,打开属性检查器。

将文档的帧频更改为 24 fps。

如果增加 FLA 文件的帧频,您将看到实例以更快的速度淡出。有关动画和帧频的信息,请参见关于动画和帧频。

使用帧数而不是秒数来计算持续时间提供了更大的灵活性,但请记住,持续时间与当前 Flash 文档的帧频相关。如果 Flash 文档使用的是 12 帧/秒 (fps) 的帧频,那么上面的代码片断就可以在两秒内淡化实例(24 帧/12 fps = 2 秒)。但是,如果帧频是 24 fps,同样的代码就可以在 1 秒内淡化实例(24 帧/24 fps = 1 秒)。如果您使用帧数来计算持续时间,则在更改文档的帧频时可以明显地改变动画速度,而不需要修改 Actionscript。

Tween 类还有几种更有用的功能。例如,可以编写一个在动画完成后触发的事件处理函数,如接下来的过程所示。

在动画完成时触发代码:

创建一个新文档,并将其命名为 triggerTween.fla。

在舞台上创建一个影片剪辑。

选择影片剪辑实例,并在属性检查器的"实例名称"文本框中键入 ball_mc。

在时间轴中选择第 1 帧,在"动作"面板中,添加下面的代码:

import mx.transitions.Tween;

import mx.transitions.easing.*;

var tween_handler:Object = new Tween(ball_mc, "_alpha", Strong.easeIn, 100, 0, 3, true);

tween_handler.onMotionFinished = function() {

trace("onMotionFinished triggered");

};

如果在 FLA 文件中测试此 Actionscript 代码,当 ball_mc 在舞台上完成淡化后会在"输出"面板中显示"onMotionFinished triggered"的消息。

选择"控制">"测试影片",以查看动画。

稍等片刻,实例将淡出。当补间完成时,您将在"输出"面板中看到消息。


你可能感兴趣的:(Web,Flash,Tween类)