Home > Flash > Progression4 で KTween

Progression4 で KTween

KTween – 軽量AS3用Tweenエンジンを公開! http://kawa.at.webry.info/201002/article_2.html
半日でフルスクラッチって、どんだけー。すごすぎ(>_<)
ダウンロードはこちら → http://code.google.com/p/kawanet/

Progression4 で使ってみたかったのでCommand化してました。
DoKTween.as

// DoKTween
package
{
	// nium
	import jp.nium.utils.ObjectUtil;
 
	// progression
	import jp.progression.commands.Command;
	import jp.progression.events.ExecuteEvent;
 
	// KTween
	import net.kawa.tween.KTween;
	import net.kawa.tween.easing.*;
	import net.kawa.tween.KTJob;
 
	/**
	 * 
	 */
	public class DoKTween extends Command
	{
 
		public function get target():Object { return _target; }
		public function set target( value:Object ):void { _target = value; }
		private var _target:Object;
 
		private var _job:KTJob;
 
		public function get duration():Number { return _duration; }
		public function set duration( value:Number ):void { _duration = value; }
		private var _duration:Number;
 
		public function get parameters():Object { return _parameters; }
		public function set parameters( value:Object ):void { _parameters = value; }
		private var _parameters:Object;
 
		public function get easeing():Function { return _easeing; }
		public function set easeing( value:Function ):void { _easeing = value; }
		private var _easeing:Function;
 
		public function get onUpdate():Function { return _onUpdate; }
		public function set onUpdate( value:Function ):void { _onUpdate = value; }
		private var _onUpdate:Function;
 
		private var _originalParameters:Object;
 
		/**
		 * 新しい DoKTween インスタンスを作成します。
		 */
		public function DoKTween( target:Object, duration:Number, parameters:Object, easeing:Function, initObject:Object = null )
		{
			// 引数を設定する
			_target = target;
			_duration = duration;
			_parameters = parameters || { };
			_easeing = easeing;
 
			// 親クラスを初期化します。
			super( _executeFunction, _interruptFunction, initObject );
		}
 
		/**
		 * 破棄します。
		 */
		private function _destroy():void {
			// 破棄する
			_job = null;
			_target = null;
			_easeing = null;
			_parameters = null;
		}
 
		/**
		 * 実行されるコマンドの実装です。
		 */
		private function _executeFunction():void
		{
			// 実行する
			_job = KTween.to( _target, _duration, _parameters, _easeing );
			_job.onComplete = _complete;
			_job.onChange = _update;
		}
 
		/**
		 * 
		 */
		private function _complete():void
		{			
			// 破棄する
			_destroy();
 
			// 処理を終了する
			super.executeComplete();
		}
 
		/**
		 * 
		 */
		private function _update():void {
			// イベントを送出する
			super.dispatchEvent( new ExecuteEvent( ExecuteEvent.EXECUTE_UPDATE, false, false, this  ) );
 
			// イベントハンドラメソッドを実行する
			if ( _onUpdate != null ) {
				_onUpdate.apply( scope || this );
			}
		}
 
		/**
		 * 
		 */
		private function _error( errorScope:Object, metaError:Error ):void {
			errorScope;
 
			// 破棄する
			_destroy();
 
			// 例外をスローする
			super.throwError( this, metaError );
		}
 
		/**
		 * 中断されるコマンドの実装です。
		 */
		private function _interruptFunction():void
		{
 
			// 実行時間を 0 にする
			_duration = 0;
 
			// 中断する & 中断方法によって処理を振り分ける
			try {
				switch ( super.interruptType ) {
					case 0	: { _job.cancel(); break; }
					case 1	: { _job.abort(); break; }
					case 2	: { _job.complete(); break; }
				}
			}
			catch ( e:Error ) {}
 
			// 破棄する
			_destroy();
		}
 
		/**
		 * インスタンスのコピーを作成して、各プロパティの値を元のプロパティの値と一致するように設定します。
		 */
		public override function clone():Command
		{
			return new DoKTween( _target, _duration, _parameters, _easeing, this );
		}
 
		/*
		 * toString
		 */
		override public function toString():String {
			return ObjectUtil.formatToString( this, super.className, super.id ? "id" : null, "target" );
		}
	}
}

使う時はこんな感じ

// easing
import net.kawa.tween.easing.*;
// 中略
//DoKTween(target:Object, duration:Number, parameters:Object, ease:Function = null ,initObject:Object = null)
var com:DoKTween = new DoKTween( targetObj, 1, { x : 300 }, Back.easeIn );
com.execute();

勢いで作ってみたんで、突っ込みあったらコメントしてもらえるとうれしいです。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.atama-switch.net/wp-trackback.php?p=225
Listed below are links to weblogs that reference
Progression4 で KTween from BLOG atama-switch

Home > Flash > Progression4 で KTween

Search
Feeds
Meta
Link
写真素材 ストックフォトの定額制ペイレスイメージズ

Return to page top