存在は前々から知っていたのですが、とりあえずイベント処理まわりがスッキリするらしいよ、とぐらいにとらえていたSignalsです。しかし、もう今までの人生で書いた自分の名前よりもaddEventListenerって書いた回数の方が多いんじゃない…?とか思いながら毎度毎度書きなぐる日々からの解放を夢見る今日この頃です。
あと気分転換も。
とりあえずマウスイベントなら、
[as3]
btn.addEventListener( MouseEvent.CLICK , onClickHandler );
function onClickHandler( e:MouseEvent ):void {
btn.removeEventListener( MouseEvent.CLICK , onClickHandler );
trace( "click!" );
}
[/as3]
これが…、
public function NativeSignal(target:IEventDispatcher = null, eventType:String = “”, eventClass:Class = null)
で、
[as3]
var click:NativeSignal = new NativeSignal( btn , MouseEvent.CLICK , MouseEvent );
click.add( onClickHandler );
function onClickHandler( e:MouseEvent ):void {
click.remove( onClickHandler );
trace( "click!" );
}
[/as3]
な感じでしょうか。
とりあえず、
[as3]add();[/as3]
がaddEventListener();のかわり。
[as3]addOnce();[/as3]
で一回だけイベント発動。
自分、リスナーは切っては追加、切っては追加を繰り返して構築する感じなので、
これが何かと便利そうですね。
[as3]remove();[/as3]
がremoveEventListener();のかわり。
[as3]dispatch();[/as3]
がdispatchEventのかわり。
[as3]addWithPriority();[/as3]
が名前からして実行順位を指定できるっぽいですね。
と、Signals初日でとりあえず今のところこれくらいで事足りる感じです。
以上、『Signalsはじめました。』でした。