SyncMethod? クラス
既存のメソッドが実行されたときに、登録しておいた関数を直後に実行させます。
コード
どんな風になるのか
EventDispatcher? に似ていますが、すでに定義された関数の内部を変更せず、
呼び出し元の記述の変更もしないで、追加呼び出しを定義することが出来ます。
onEnterFrameとかonReleaseとかでも使えます。
使い方
以下にこのクラスで定義されているメソッドを列記しておきます。
メソッドは全て static で定義されています。
synchronize( target:Object, functionName:String, handler:Function ):Void
既存のメソッドが実行されたときに、その直後に実行させる関数を登録します。
remove( target:Object, functionName:String, handler:Function ):Void
関連して実行される関数を選択して解除します。
removeAll( target:Object, functionName:String, handler:Function ):Void
関連して実行される関数をすべて解除します。
サンプル
import com.seyself.utils.SyncMethod;
var arr = [];
var obj = {}
obj.sync1 = function( a )
{
trace("sync1 : "+a);
}
sync2 = function( a )
{
trace("sync2 : "+a);
}
arr.push("push 1");
trace("----");
SyncMethod.synchronize( arr , "push", obj.sync1 );
SyncMethod.synchronize( arr , "push", sync2 );
arr.push("push 2");
trace("----");
SyncMethod.remove( arr , "push", obj.sync1 );
arr.push("push 3");
trace("----");
trace(arr);
出力結果
---- sync1 : push 2 sync2 : push 2 ---- sync2 : push 3 ---- push 1,push 2,push 3
