BetweenAS3の無限ループ

by thinktaro
...
@mxmlc -o bin/reference.betweenas3/Sample5.swf -load-config+=obj\FlashProjectConfig.xml -default-size 800 450 
@author thinktaro
@create 10/15/2009
@email big.west727あっとまーくライブドットジェイピー
♥0 | Line 92 | Modified 2009-10-16 20:30:41 | MIT License
play

ActionScript3 source code

/**
 * Copyright thinktaro ( http://wonderfl.net/user/thinktaro )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/A83d
 */

package
{
	import flash.events.Event;
	import flash.display.Sprite;
	import flash.geom.ColorTransform;
	import org.libspark.betweenas3.BetweenAS3;
	import org.libspark.betweenas3.easing.Bounce;
	import org.libspark.betweenas3.easing.Elastic;
	import org.libspark.betweenas3.easing.Expo;
	import org.libspark.betweenas3.events.TweenEvent;
	import org.libspark.betweenas3.tweens.ITween;
	

	/**
	 * ...
	 * @mxmlc -o bin/reference.betweenas3/Sample5.swf -load-config+=obj\FlashProjectConfig.xml -default-size 800 450 
	 * @author thinktaro
	 * @create 10/15/2009
	 * @email big.west727あっとまーくライブドットジェイピー
	 */
	public class BetweenAS3_Sample5 extends Sprite
	{
		private var rect:BasicRect;
		public function BetweenAS3_Sample5() 
		{
			if(stage){
				initialize();
			}
			else{
				addEventListener(Event.ADDED_TO_STAGE, initialize);
			}
		}
		private function initialize(evt:Event=null):void{
			removeEventListener(Event.ADDED_TO_STAGE, arguments.callee);
			rect = new BasicRect(100, 100, 0xff0000);
			rect.x = stage.stageWidth / 2;
			rect.y = stage.stageHeight / 2;
			this.addChild(rect);
			var radian:Number =90 * Math.PI / 180;
			var t0:ITween = BetweenAS3.tween(rect,
					{
						scaleX:2,
						scaleY:2,
						transform: {
							colorTransform: {
								greenOffset:256,
								redOffset:-256,
								blueOffset:0
							},
							matrix: {
								b:Math.sin(radian),
								c:-Math.sin(radian)
							}
						}
					},
					null,
					1,
					Elastic.easeOut
				)
			t0.play();
			t0.addEventListener(TweenEvent.COMPLETE,completeHandler);
		}
		private function completeHandler(evt:TweenEvent):void {
			var t1:ITween = BetweenAS3.serial(
				BetweenAS3.tween(rect,
				{
					scaleX:1,
					scaleY:1,
					transform: {
						colorTransform: {
							redOffset:256,
							greenOffset:-256
						},
						matrix: {
							b:0,
							c:0
						}
					}
				},
				null,
				1,
				Bounce.easeOut
				)
			)
			t1.play();
			t1.onComplete = function():void {
				evt.target.play();
			}
		}
	}
}
import flash.display.Graphics;
import flash.display.Shape;
class BasicRect extends Shape {
	public function BasicRect(width:Number, height:Number, color:int) {
		var g:Graphics = this.graphics;
		g.beginFill(color);
		g.drawRect( -width / 2, -height / 2, width, height);
		g.endFill();
	}
}