前面教程学习了Flash AS3教程:Random类,这篇我们一起来学习Motion类的使用方法和实例。
先来一个例子展示: http://www.webjx.com/files/media/Motion.swf
这个类貌似是多余的,反正就是Tween类,但是解决了动画可能播到一半就停止了等问题,Tween播放到一半就停止了原因是因为类中的侦听EnterFrame事件的时候,使用的是弱引用侦听方式,在播放的途中,被内存自动回收了,因此播放到一半就夭折了,解决办法嘛,除了自己写一个,也可以去包中改一下Tween,把侦听改成强引用就行了 我个人是不太习惯使用Tween的,因此我就写了这个类,自己使用嘛,大家觉得还不错就拿去用吧 缓动的算法还是使用ADOBE自带的那个easing包 这个类属性和方法比较多。。耐心看吧,跟Tween差不了太多的
类讲解: index.base.animation.Motion类: 代码:public class Motion extends EventDispatcher 提供给程序员使用的动画类
构造函数: public function Motion(target_:*,_attribute:String,_algorithm:Function,_begin:Number,_end:Number,_duration:uint = 10) 与Tween一模一样,只不过最后少了个属性是是否以时间计算缓动,而该类只有以帧频计算缓动
play方法: public function play():void 开始播放,并触发播放事件 如果正在播放,调用该方法不会有什么变化,只不过会触发播放事件
back方法: public function back():void 同于play方法,不同的是该方法是让动画反过来播放
resume方法: public function resume():void 继续播放,依然会触发播放事件
stop方法: public function stop():void 停止播放,触发停止事件 如果是播放完毕了,即还会触发播放完毕事件 停止事件永远比播放完毕事件提前调度
reset方法: public function reset():void 重置动画,还原到刚开始实例化的状态 无论是否正在播放,都会触发停止事件
forward方法: public function forward():void 快进到最后
rewind方法: public function rewind():void 倒带到最前
next方法: public function next():void 向前播放一帧 如果是在播放中使用该方法,效果不是太明显
prev方法: public function prev():void 向前播放一帧 如果是在播放中使用该方法,效果不是太明显
clear方法: public function clear():void 清除类中的引用,事件等
isBack属性(只读): public function get isBack():Boolean 是否在回放状态
target属性(只读): public function get target():* 获取当前操作的对象
current属性(只读): public function get current():u |