[AS3] BetweenAS3のThread

2010/02/17

こんにちは。きんくまです。
期末ですね。もうすぐ3月ですね。みなさま、いかがお過ごしですか。
オリンピックはじまりましたね。

さてThread(そうめん)を、再度勉強しているところです。

Threadは、非同期処理が結構柔軟にかけると思いました。
非同期処理の手続きを開始したあとは、その非同期処理を中止するか、終わるのをひたすら待つかのどちらかなのですが、Threadは非同期処理中の動作を細かく設定できるんですね。だから、ゲームやサーバーと頻繁にデータの出し入れなんかするときに結構役に立つと思います。

で、BetweenAS3です。
これはTweenerと同じ、アニメーション用のライブラリです。
一見複雑そうに見えたのですが、基本はBetweenAS3.toさえ使えればTweenerの代わりにすぐ使えるようになりました。

それで、Thread用にBetweenAS3Threadを作りました。

package  
{
	import fl.motion.ITween;
	import org.libspark.betweenas3.BetweenAS3;
	import org.libspark.betweenas3.core.easing.IEasing;
	import org.libspark.betweenas3.tweens.IObjectTween;
	import org.libspark.thread.IMonitor;
	import org.libspark.thread.Monitor;
	import org.libspark.thread.Thread;

	public class BetweenThread extends Thread
	{
		private var _target:Object;
		private var _to:Object;
		private var _time:Number;
		private var _easing:IEasing;
		private var _delay:Number;
		private var _monitor:IMonitor;
		private var _tween:IObjectTween;
		
		public function BetweenThread(target:Object, to:Object, time:Number = 1.0, easing:IEasing = null, delay:Number = 0) 
		{
			_target = target;
			_to = to;
			_time = time;
			_easing = easing;
			_delay = delay;
			_monitor = new Monitor();
		}
		
		override protected function run():void 
		{
			_monitor.wait();
			interrupted(interruptedHandler);
			_tween = BetweenAS3.to(_target, _to, _time, _easing);
			if (_delay != 0) {
				BetweenAS3.delay(_tween, _delay);
			}
			_tween.onComplete = completeHandler;
			_tween.play();
		}
		
		public function cancel():void
		{
			interrupt();
		}
		
		private function completeHandler():void
		{
			_monitor.notifyAll();
		}
		
		private function interruptedHandler():void
		{
			if (_tween != null && _tween.isPlaying) {
				_tween.stop();
			}
		}
	}

}

TweenerThreadを参考にしながら作りました。
ところが、さっき検索かけたらすでにさくーしゃさんがBetweenAS3Threadを作られていました。

>> BetweenAS3Thread

それで気がつきました。そうだよなー。コンストラクタの引数をITweenにしておけばBetweenAS3.toに固定しなくてすむもんなー。頭いいなー。と
BetweenAS3はパラレル・シリアルの複数トゥイーンを制御するグループ機能があるので、そっちの方が使い勝手がよいと思いました。
なのでさくーしゃさん方式で今後はいきたいと思いました。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

LINEスタンプ作りました!
毎日使える。とぼけたウサギ。LINEスタンプ販売中! 毎日使える。とぼけたウサギ

ページトップへ戻る