as2: 2007年11月アーカイブ
ってことをするために作ったクラス
SyncMethod クラス
onEnterFrameとかonReleaseでも使えます。
_array.push()とかでも使えます。
ただし、引数の値は呼び出した関数に渡された引数が設定されます。
また関連して実行された関数はスコープが、登録したメソッドを持つオブジェクトに変更されますので使う際は要注意。
今回はAS2用に書いたけど、AS3でも一部書き換えれば同様のことができました。
ただAS3での必要性は今のところ感じないけども。
SyncMethod クラス
import com.seyself.utils.SyncMethod;
var obj = {};
var tgt = {};
obj.execution = function( a )
{
trace("execution : "+a);
}
tgt.sync1 = function( a )
{
trace("sync1 : "+a);
}
function sync2( a )
{
trace("sync2 : "+a);
}
obj.execution( "exec 1" );
trace("----");
SyncMethod.synchronize( obj , "execution", tgt.sync1 );
SyncMethod.synchronize( obj , "execution", sync2 );
obj.execution( "exec 2" );
trace("----");
SyncMethod.remove( obj , "execution", tgt.sync1 );
obj.execution( "exec 3" );
trace("----");
EventDispatcher に似ていますが、すでに定義された関数の内部を変更せず、呼び出し元の記述の変更もしないで、追加呼び出しを定義することが出来ます。onEnterFrameとかonReleaseでも使えます。
_array.push()とかでも使えます。
ただし、引数の値は呼び出した関数に渡された引数が設定されます。
また関連して実行された関数はスコープが、登録したメソッドを持つオブジェクトに変更されますので使う際は要注意。
今回はAS2用に書いたけど、AS3でも一部書き換えれば同様のことができました。
ただAS3での必要性は今のところ感じないけども。
最大値と最小値が決まっていて、その間の値を取るときに
Mathクラスのminとmaxを今まで使っていた。
でも、Mathクラスのmaxとminで比較するより、条件分岐を使った方が倍くらい早かった。
minとmax使った方が書くのが楽チンだから
ついついやってしまうのでメモメモ。
Mathクラスのminとmaxを今まで使っていた。
var res:Number = Math.min( 1 , Math.max( 0 , i ) );こんなふうに。
でも、Mathクラスのmaxとminで比較するより、条件分岐を使った方が倍くらい早かった。
var res:Number = ( i > 1 ) ? 1 : ( i < 0 ) ? 0 : i ;Function呼ばないから当たり前なんだろうけど、
minとmax使った方が書くのが楽チンだから
ついついやってしまうのでメモメモ。
