TweenLite 是被人熟悉的一个as3动画方面的类库,而其他人也有参与到这种动画编程,也写了一些动画编程类,其中Tween24就是其中的佼佼者。tween24个人虽然没有正式使用过,但是它的一种结构写法给我留下了一种深刻的印象。其中一种链式的封装编程方式,也是值得学习。下面看看结构是怎样的?
首先,先看看 TweenLite 的调用方式,TweenLite.to(对象,时间,更新属性);这种方式既简单又熟悉。
再看 Tween24类其中一些写法,这些函数会增加返回自己的对象本身返回值。
public function x(x:Number):Tween24
{
_params ||= { };
_params.x = x;
return this;
}
public function y(y:Number):Tween24
{
_params ||= { };
_params.y = y;
return this;
}
public function z(z:Number):Tween24
{
_params ||= { };
_params.z = z;
return this;
}
Tween24.tween(参数).x(参数).y(参数).z(参数);
看起来这种写法的方式,我们可以想象为一个接一个铁扣接起来组成的一条锁链。
你会发现这个Tween24类里面作者使用了大量的手法有意识在里面return 自己本身,这样的好处为后续的方法调用提供一个便利。
不知道你是否可以接受这种结构方式,但至少这种写法还是有一点意思。
再看看我们as3的addChild() 的方法会返回一个DisplayObject对象,有时候你会不会想马上设置它的x和y值呢?
addChild(mc).x=300?
或者addChild(mc).y=300?
再或者 addChild(mc).z=300?
假如?变成这样?你会不会接受addChild(mc).x(100).y(200).z(300);
或者 addChild(mc).xy(100,200).z(300);
或者 addChild(mc).xyz(100,200,300);
想法可以有更多更多。