16 五 2007, 12:43上午
Uncategorized
by

发表点儿看法吧

使用Tween类

翻译自:Kirpua.com

        从mx2004开始,macromedia提供给开发者一个新的类Tween,这个类可以让你直接用as实现各种补间效果。

 

 

        本文的主体是进行的代码的解释,当然这之前我提供了完整的代码下载。

Download FLA for Flash MX 2004/Flash 8

当你解压tweencomplete文件后,选择actions层,按F9。你将看到以下的代码。

 

import mx.transitions.Tween;
import mx.transitions.easing.*;
var xScaleT:Tween = new Tween(kText, "_rotation", Elastic.easeOut, 0, 360, 3, true);
var xPosT:Tween = new Tween(kText, "_x", Bounce.easeOut, 0, Stage.width, 3, true);
xScaleT.onMotionFinished = function() {
this.yoyo();
};
xPosT.onMotionFinished = function() {
this.continueTo(Stage.width / 2, 3);
};

在解释这些代码之前,我得提醒你一下代码中的kText是舞台上的影片的实例名。

让我们开始吧


import mx.transitions.Tween;
import mx.transitions.easing.*;

第一行导入Tween类到你的flash文档中。
你可以在这儿找到这个类(当然是指默认安装下)
C:\Program Files\Macromedia\Flash 8\<language>\First Run\Classes\mx\ transitions\
在这里你可以找到16个类的文件,它们是为flash设计的动画效果(也包括了slideshow模板)。
在这个教程中,
我们只关心Tween类和其它六个在easing文件夹的easing类。


var xScaleT:Tween = new Tween(kText, "_rotation", Elastic.easeOut, 0, 360, 3, true);
var xPosT:Tween = new Tween(kText, "_x", Elastic.easeOut, 0, Stage.width / 2, 3, true);

这两行,新建了两个新的补间实例,并奖它们分别保存为变量xScaleT和xPosT. 

这个补间构造器内含7个属性。

 

  1. object – 要调用tween类的对象。这个可以是任何对像,不见得一定是影片剪辑。

  2. property – 这个是要调用补间的对象的属性。它是一个字符串类型的。

  3. ease class and method – 要调用的补间类型和缓冲的方法。flash本身有6个缓冲的类。

    1. Back – 扩展一边或两边补间的动画效果。

    2. Bounce -  创造反弹的补间效果。

    3. Elastic – 创建一种混合的反弹和反回的效果。

    4. Regular – 缓慢的移动

    5. Strong – 和regular比较相似,但是它强烈一些,并且混合了几种缓冲效果。

    6. None – 一种简单的过渡效果。

   这六种缓冲效果每种又有三种方法来控制缓冲:

    1. easein的缓和只适用于今日开始的吐温.

    2. easeOut – 只在补间的结束时有用.

    3. easeInOut – 在补间的开始和结束都起作用.

            通过结合六个缓冲类和三种缓冲方法,我们可以创造出18种不的缓冲效果。

  1. begin – 补间之前的属性值

  2. end -结束补间时的属性值

  3. duration – 补间沿续的时间

  4. use seconds – Yes/No,补间时间是否用称计算。


xScaleT.onMotionFinished = function() {

这是一个针对补间实例xScale属性的事件句柄。当当前的补间完成时,这个代码将被执行。


this.yoyo();

Using the yoyo method, this line basically instructs the tween to flip the end and begin values creating an endless back and forth motion.


xPosT.onMotionFinished = function() {

Another event handler, but this time for the xPosT tween instance.


this.continueTo(Stage.width / 2, 3);

当运行到最后,缓冲类开始一个新的值。这个continueTo同时又需要两个参数,end(结束时的属性值),duration(持续的时间)


Note 在flash mx2004,许多事件使用Tween类是不能被声明为类的成员。通俗的说这意味着你不能像我演示的这样使用(做为实例的属性).Tween类在flash 2004里面必需用监听器。

  1. Obviously using listeners is one of the solutions. This is the way the developers intended but can become quite cumbersome. All in all however this is the correct way to go since the other two methods are basically just fooling the compiler’s error checking. An example of using listeners with the Tween class:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myTween:Tween = new Tween();
var listeningObject:Object = new Object();
myTween.addListener(listeningObject);
listeningObject.onMotionFinished = function():Void {
//actions for motion finished
};
  1. Don’t use dot notation but rather use array referencing, the compiler cannot check these properties and thus it can’t give an error. Example:
var myTween:Tween = new Tween();
myTween["onMotionFinished"] = function ():Void {
//actions for motion finished
};
  1. Don’t data type the variable. If the compiler doesn’t know what type the variable is there is no way for it to tell which properties belong and which do not. Alternatively you could type the variable as Object, which is a dynamic class (meaning there is no restrictions on the properties an instance can have). Example showing the variable with type Object:
var myTween:Object = new Tween();
myTween.onMotionFinished = function():Void {
//actions for motion finished
};

As you can hopefully see, the Tween class is actually very easy to use and manipulate to create the desired effect. If you have any questions, feel free to post them on the kirupaForums.Good Luck!

Jesse Marangoni TheCanadian

 

 

*name

*e-mail

web site

给点儿指导意见:


 
  • 我在说

  • 我在看

  • 新文章

  • 文章归档