由于空间有限,有些资源在本地放置一段时间后,我会将资源链接改到国外下载空间上并进行说明。通常这些国外空间都可以用FreeRapid这个软件下载。欢迎大家常来多交流: )
class rkuk implements ActionScript我的ActionScript小路 |
由于空间有限,有些资源在本地放置一段时间后,我会将资源链接改到国外下载空间上并进行说明。通常这些国外空间都可以用FreeRapid这个软件下载。欢迎大家常来多交流: )
尝试了一下google buzz感觉很方便,有朋友告知我可以把blog和buzz关联,这样更方便了。欢迎各位朋友在buzz中关注我的blog,buzz地址是:rkuk.org@gmail.com
在flashloaded.com上看到一个制作3D图片墙的组件,效果还真不错,以后不用ppt了,改用这个东东show off
...
休息了几天,接着TweenLite初始化过程开始。第一步就是在用户设置了ease函数的情况下,替换默认的ease。
如果用户指定的ease函数还需要输入一般ease函数所需的四个参数之外的其它参数,那么这些参数应定义在vars.easeParams中,这时TweenLite tool会使用一个easeProxy函数将用户指定的ease函数封装,以保证能够把额外的参数传入到用户指定的ease函数中。
接下来初始化两个变量cachedPT1和propTweenLookup,在后面的初始化过程中会用到这两变量,其中cachedPT1用于引用一个PropTween对象,propTweenLookup用于根据target被操作的属性查找操作其变化的PropTween,但其实在构造函数中已经对propTweenLookup进行过初始化,因此这里的初始化实际是多余的,可以删除掉。
不多说了,估计看不完了,收藏吧:)











该进入TweenLite自身的渲染过程了,也就是TweenLite.renderTime方法。这个方法是TweenLite tool中最复杂的操作之一,如果是第一次渲染还会在此过程中执行一些渲染前必要的初始化。再次强调一下这个方法中的time参数已经和父级时间线的时间相对独立开了,这里的time就是相对TweenLite起点状态经过的时间,并且这个时间并不像root时间线的绝对时间只会增大。这里的time当TweenLite正向运行的时候就在逐步增大,TweenLite如果反向运行那么这个time就在逐步减小,并且可能会减小到小于0。ok强调完毕那还是从代码开始:
上一篇中TweenLite已经建立完成,接下来就要开始渲染了。在TweenLite tool中所有TweenCore对象(包括TweenLite、TweenMax、TimelineLite、TimelineMax以及root时间线对应的类SimpleTimeline)的渲染方法都是renderTime,这里体现了按接口设计的原则,也就是告诉对象要做什么,但是具体怎么做就由对象自己实现。再说具体点就是渲染发生的时候只通知对象调用renderTime方法,但renderTime方法内执行些什么,就由TweenLite、TweenMax、TimelineLite、TimelineMax和SimpleTimeline自己负责实现。这5个类的renderTime方法的具体实现各不相同,但也有近似的地方,可以划分为两种类型:第一种是Tween类的renderTime(包括TweenLite、TweenMax),另一种是时间线的类的renderTime(包括TimelineLite、TimelineMax和SimpleTimeline)。概括的说:第一种类型的renderTime主要实现操作target的属性更新,第二种类型的renderTime主要实现通知包含在该时间线上的TweenCore对象进行渲染。
Ok,接着上一篇从TweenCore构造函数中返回后,就来到了TweenLite自身的构造函数中,这个过程中完成的操作有如下部分:
1 记录被TweenLite操作的target。
2 创建propTweenLookup对象,在后面会具体说明这个对象用于根据操作的属性,查找到实际操作这个属性的PropTween对象,例如查找操作MovieClip对象x属性的PropTween,这样便于实现TweenLite.killVars方法。解释一下这个方法的作用:一个TweenLite对象可以同时对对象的多个属性执行Tween,例如同时让MovieClip的x和y都增大,但是如果用户在Tween的过程中不想让TweenLite再改变MovieClip的x属性,但同时又要保留这个TweenLite对象继续增加y,那么就可以通过killVars取消操作某个属性。
接着第1篇中开始updateAll的说明:
在updateAll中,渲染的过程是由rootTimeline.renderTime和rootFramesTimeline.renderTime发起的。这里就需要说明一下TweenLite tool的root时间线。root时间线包含rootTimeline和rootFramesTimeline,是整个Tween过程的绝对基准时间线。其中rootTimeline是所有以秒计时的TweenLite、TweenMax、TimelineLite、TimelineMax对象的时间基准;而rootFramesTimeline是所有以帧计时的TweenLite、TweenMax、TimelineLite、TimelineMax对象的时间基准(通过创建对象时在vars中设置useFrames标志,可以指定对象以秒计时还是以帧计时)。
TweenLite是一个高效、灵活的开源ActionScript缓动工具包(部分plugin没有开源),对于pure code来说,是个不错的创建动态效果的工具。“缓动”这个词是从网上看来的,按我的解释意思就是实现对象从一个状态到另一个状态转变的过渡效果。我觉得“缓动”并没有清楚的表达出过渡的意思,乍一看还以为是延迟一会儿再动,但我也找不出更好的词来形容,我还是更喜欢用Tween来称呼,不得不承认在科技领域还是英文描述得准确,中文就是稍有欠缺,毕竟现在西方的科技遥遥领先。话题跑偏了,还是接着说TweenLite吧,最近接触到TweenLite,觉得使用挺方便的,不过有时候还是会遇到点使用问题,再加上好奇心的唆使,从而展开了对TweenLite源码的窥视,我想把这个学习的过程记录下来,一方面和大家一起探讨,另一方面也当做一个记录让自己以后可以复习。罗嗦了一大堆,接下来就开始吧!首先如果你想要获得TweenLite以及相关介绍,可以到这里:www.tweenlite.com
还要先说明一下:因为TweenLite工具包中有一个类的名字也同样是TweenLite,为了区分TweenLite工具包和TweenLite类,我在以后会分别把TweenLite工具包叫做TweenLite tool,而TweenLite类就直接称呼TweenLite。我想接下来要讲的内容还是不少,不能一次写完,就分段来吧,也尽量把blog更新:)ok接下来真的开始啦!

忙了好一段时间了,没来得及写点什么,今天见到一本新书,相信应该不错!分享给大家吧,虽然不常发文,不过还是希望这里能多点人气,一起探讨:)
一本Flash CS4的新书,讲述了Flash CS4的animation, sound, 3D, Inverse Kinematics, the drawing tools, ActionScript等方面,内容很全,参考的看一下吧:)