认识Tweener

多年来,补间引擎Tweener赢得了相当多用户的欢迎。最初他是一个ActionScript 2.0版本的引擎,后来被移植到ActionScript 3.0,现在两个版本都有。实际上,Tweener至少部分是基于更早的一款ActionScript 1.0引擎MC Tween开发的,它发布于2003年。Tweener最初由Zeh Fernando(http://zehfernando.com)编写,也有其他一些人的贡献。

安装Tweener之前要到Google代码库:http://code.google.com/p/tweener/下载源文件。这个包的顶层目录叫做caurina。把这个文件夹放到与你其他的项目文件相同的文件夹(或者其他你的开发环境能找到的地方)。这个引擎的主类是 caurina.transitions.Tweener。

Tweener的语法很容易适应。与Adobe的Tween类不同,你不需要实例化主类Tweener。而是调用Tweener的静态方法。主要的方法是addTween。就像这样:



Tweener.addTween(target, tweeningParameters);



参数target和tweeningParameters的数据类型都是Object。target是你要改变的对象——通常是个 MovieClip, Sprite或者别的可视对象(虽然目标可以是任何具有至少一个可变数字公共属性的对象)。tweeningParameters属性是一个一般的 Object对象,它拥有若干属性让你可以控制补间的数值,缓动函数,时间等等。所以你可以像下面这样调用它,它将在3秒钟内把一个名为sprite的对象移动到x值为800的位置:



Tweener.addTween(sprite,{x:800, time:3});



或者像这样,把sprite移动到x值为800,y值为400的位置:



Tweener.addTween(sprite,{x:800, y:400, time:3});



显然这个过程比Adobe的两个Tween类都要简单得多。你添加到tweeningParameters的任何属性都会在target对象上被改变。请注意这里没有初始值。目标对象各个属性的当前值被默认为初始值。同需要注意的是你添加到tweeningParameters里的值都是目标的绝对值。换句话说,sprite不会在x轴方向移动800像素,y轴方向移动400像素,而是移动到800,400位置。



tweeningParameters的Object数据类型是Tweener的长项之一,也是很多严肃的开发者不太喜欢的地方之一。一方面,他带来了巨大的灵活性,让你可以改变任何对象的任何公共数值属性。比如,尽管Tweener是在Flash 10出现之前很早被写成的,你依然可以用它来改变一个Sprite的3D属性,没有任何问题:



Tweener.addTween(sprite,{x:800, z:800, rotationX:180, rotationY:270, time:3});



另一方面,因为使用了一般的Object类型,你可以给它添加任何数据类型的任何属性,包括各种不可能被执行的属性。编译器会高高兴兴地编译他,而你只有在看到运行时错误提示的时候才会意识到他们——如果你安装了调试版Flash播放器的话。比如,你可以这样创建一个补间:



Tweener.addTween(sprite, {dog:800, time:3});



显然,dog不是一个Sprite类的一个属性,不应该在那。在你运行SWF文件时它当然会出错,而在编译时不会有任何警告。你还可以给出错误的数据类型,像这样:



Tweener.addTween(sprite, {x:”dog”, time:3});



现在我们知道x应该是一个数值,但是如果一个字符串被放到这个位置,你会丢掉全部的编译时类型检测。这甚至连运行时都不会报错。sprite只是从屏幕上消失,跑到x坐标为把“dog”转换成数值的位置。当然,Tweener会相当聪明的把一个字符串形式的数值转换成数值类型。所以下面的语句会被正确执行:



Tweener.addTween(sprite, {x:”800”, time:3});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值