背負い投げとENTER_FRAME

Icon

なんちゃってWebクリエイターがFlashやらActionScriptやらを淡々と書く。ときとき柔道の話しもする。

Progression 4 の Command + オレオレコマンド

Progression 4 の Commandだけ引っこ抜いて、
さらにオレオレコマンドを作ってみる。

参考:
http://www.northprint.net/2009/10/progression-4.html

メインクラス:Main.as ここからコマンドを呼び出す


package
{
	/**
	 * ...
	 * @author reno
	*/

	import flash.display.MovieClip;
	import jp.progression.commands.*;
	import jp.progression.commands.lists.*;
	
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
	
	public class Main extends MovieClip
	{
		
		public function Main() 
		{
			var com:Command = new SerialList(
				null,//第一引数、null
				new Wait(3),//3秒待つ
				new Trace("4444444"),//トレス
				new OreOreCommand(this,2),//キタ!!オレオレコマンド!
				2,//2秒待つ
				"Owari"//トレス
			);
			com.execute();
			
		}
		
	}
}

オレオレコマンドの中身
引数(場所,秒数)
内容:指定の場所に、50×50のグレーのSpriteを作って、
x座標0から150まで?秒(第2引数)をかけて移動して終わり。

	new OreOreCommand(this,2)

オレオレコマンド ソース

package {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import jp.progression.commands.*;
	import jp.progression.commands.Command;
	import flash.display.DisplayObjectContainer;
	
	import caurina.transitions.Tweener;
	
	import jp.nium.core.debug.Logger;
	import jp.nium.utils.ObjectUtil;
	import jp.progression.core.L10N.L10NCommandMsg;

	public class OreOreCommand extends Command {
		
		/**
		 * <p>処理を停止させたい時間を秒単位で取得します。</p>
		 * <p></p>
		 */
		public function get time():Number { return _time; }
		private var _time:Number = 1.0;
		private var _target:Object;
		
		public function OreOreCommand( target:Object , time:Number = 1.0 , initObject:Object = null ) {
			// 引数を設定する
			_time = time;
			_target = target;
			// 親クラスを初期化する
			super( _executeFunction, _interruptFunction, initObject );
		}
		
		/**
		 * 実行されるコマンドの実装です。
		 */
		private function _executeFunction():void {
			
			var _sp:Sprite = new Sprite();
			_sp.graphics.beginFill( 0x999999 , 1 );
			_sp.graphics.drawRect(0,0,50,50);
			_sp.graphics.endFill();
			_sp.y = 50;
			_target.addChild(_sp);
			
			Tweener.addTween( _sp , { x:150 , time:_time , delay:0.0 , transition:"easeOutCubic" , onComplete:function(){ executeComplete(); } });
			
			// 処理を終了する
			//super.executeComplete();
		}
		
		private function _interruptFunction():void {
			
		}
		

		public override function clone():Command {
			return new OreOreCommand( _target , _time , this );
		}

	}
}

ファイル一式はこちら

このエントリーをはてなブックマークに追加  

Category: Action Script 3.0, Progression

Tagged:

Leave a Reply

中の人のプロフィール

柔道歴約20年だが諸理由で未だ初段。162cm、60kgくらいの軽量級。得意は背負い投げと巴投げ。2009年、左ヒザ前十字靭帯損傷。ただ今柔道復帰を企んでいる真っ最中。仕事では最近、ActionScriptを書いたり、WordPressをいじったりの日々が続いてる。@renowanにてつぶやいてる。

アーカイブ

Flicker

This movie requires Flash Player 9.0.0