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