Tweener——序列补间

缓动及缓动库 everyinch 4385℃ 0评论

tweenSequence
前面已经讲到利用Tweener补间引擎的onComplete参数可以指定在某一个缓动执行完毕后,执行另一个缓动,从而产生一个接着另一个运动的效果,也就是按照次序的执行补间动画。使用Tweener补间引擎的delay参数可以实现同样的效果。也就是使后面的补间延迟一定的时间再执行,从而产生序列补间的效果。示例源代码如下:

package{
	import caurina.transitions.Tweener;

	import flash.display.Sprite;
	import flash.geom.Point;

	[SWF(width="640",height="480",backgroundColor="0xffffff")]
	public class TweenerSequence extends Sprite {	
		private const NUMBERS:int = 15;
		private const RADIUS:int = 180;

		public function TweenerSequence(){
			var center:Point = new Point();
			center.x = 320;
			center.y = 240;
			for (var i:int = 0; i < NUMBERS; i++) {
				var circle:Sprite = new Sprite();
				circle.graphics.beginFill(0xffcc00);
				circle.graphics.drawCircle(-10,-10,20);
				circle.graphics.endFill();
				addChild(circle);

				circle.alpha = 0;
				circle.x = center.x;
				circle.y = center.y;

				var angle:Number = 2 * Math.PI / NUMBERS * i;
				var target:Point = new Point();

				target.x = RADIUS * Math.cos(angle) + center.x;
				target.y = RADIUS * Math.sin(angle) + center.y;

				Tweener.addTween(circle, {
					alpha: 1,
					x: target.x,
					y: target.y,
					transition: "easeOutExpo",
					time: 1,
					delay: i * 0.2
				});

				Tweener.addTween(circle, {
					x: center.x,
					y: center.y,
					alpha: 0,
					time: 1,
					transition: "easeInExpo",
					delay: i * 0.2 + 5
				});
			}
		}
	}
}

代码首先声明构造圆形Sprite的数量NUMBERS常量,以及排成圆形的半径RADIUS常量。使用for循环构造NUMBERS个圆形Sprite,将每一个Sprite的alpha设置为完全透明,并定位在舞台的中心点。使用圆形公式计算每个Sprite要缓动到的目标点target。然后使用Tweener补间引擎将每个Sprite延迟0.2秒缓动到相应的目标点target,并将它的alpha属性缓动为1。延迟5秒之后,再将每个Sprite缓动回中心点,并将alpha属性缓动为0。

分享&收藏

转载请注明:陈童的博客 » Tweener——序列补间

喜欢 (1)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
'; } if( dopt('d_footcode_b') ) echo dopt('d_footcode'); ?>