Tweener补间引擎的onComplete参数,允许在一个补间结束之后再调用另一个函数。这样可以通过onComplete参数,在第一段补间结束之后调用第二段补间,而第二段补间完成后,再次调用第一段补间,从而制作出反复循环的动画效果。在TweenerFilter.as示例的基础上,制作一个反复循环的示例,类文件名为TweenerLoop.as,源代码如下:
package{ import caurina.transitions.Tweener; import caurina.transitions.properties.FilterShortcuts; import flash.display.Bitmap; import flash.display.Sprite; [SWF(width="640",height="480",backgroundColor="0xffffff")] public class TweenerLoop extends Sprite{ [Embed(source="assets/icon.jpg")] private var icon:Class; private var sprite:Sprite; public function TweenerLoop(){ var bmp:Bitmap = new icon(); sprite = new Sprite(); sprite.addChild(bmp); addChild(sprite); sprite.x = 256; sprite.y = 176; FilterShortcuts.init(); startTween(); } private function startTween():void{ Tweener.addTween(sprite,{_Blur_blurX:60,_Blur_blurY:60,time:1,transition:"easeInOutBounce",onComplete:secondTween}); } private function secondTween():void{ Tweener.addTween(sprite,{_Blur_blurX:0,_Blur_blurY:0,time:1,transition:"",onComplete:startTween}); } } }
为了在不同的函数中引用sprite,将sprite定义为类成员变量。在构造函数中调用startTween函数。在startTween函数中,使用Tweener补间引擎将sprite模糊化,并在补间结束之后调用secondTween函数。在secondTween函数中,使用Tweener补间引擎将去除sprite的模糊滤镜,在补间结束之后又重复调用startTween函数,如此循环。
转载请注明:陈童的博客 » Tweener——循环补间