2月 10, 2010
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 );
}
}
}