Home > Archives > 2010-02

2010-02

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();

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

FlashDevelop のコードカラーリング

FlashDevelopのコードカラーがFlashIDEに近づける方法。

/FlashDevelop/Settings/Languages/AS3.xml

を 開いて 9行目あたりの as3-secondary-keywords 内にここのテキストをコピペする。

あとは FlashDevelop ツールバー の Tools > Syntax Coloring を開いてword と word2 の Foreground に色を指定する。
自分は 0x1518ff を指定。
これでかなりFlashIDE のカラーリングに近づいた!ヤッホー!

念の為、AS3.xml はバックアップしてから試した方がいいかもー!

習作 UI 02

Flash IDE CS4のプロパティパネルがすごい便利になってた。
マウス操作だけで値を変えられるの便利!ってことで作ってみた。

This movie requires Flash Player 9

Progression4 Tweenコマンドジェネレータの UIをこれに換える予定っす。

Home > Archives > 2010-02

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

Return to page top