« スクリプトでのイージングアニメーション | メイン | ムービークリップの階層を出力 »
2007年8月29日
[as2] Functionの呼び出し元(caller)のスコープを調べる
AS2 にて
デバッグ用に作ったもの。
渡されたスコープから辿って3階層以内に見つからなければ null を返します。
デバッグ用に作ったもの。
渡されたスコープから辿って3階層以内に見つからなければ null を返します。
class FunctionUtil
{
public static function getCallerScope( func:Function , scope:Object ):Object
{
if( scope==undefined ) scope = _root;
var maxLevel = 4;
var level = (arguments[2]==undefined)? 0 : arguments[2];
if( func ){
for(var val in scope){
if( typeof( scope[val] )=="function" ){
if( scope[val]==func ){
return { scope:scope , functionName:val };
}
} else {
if(level<maxLevel){
if( typeof( scope[val] )=="movieclip" || typeof( scope[val] )=="object" ){
var res = getCallerScope( func , scope[val] , level+1 );
if( res ) return res;
}
}
}
}
}
return null;
}
}
例:
function calleeFunc()
{
var res = FunctionUtil.getCallerScope( arguments.caller , this._parent );
trace(res.scope);
trace(res.functionName);
}
トラックバック(0)
このブログ記事を参照しているブログ一覧: Functionの呼び出し元(caller)のスコープを調べる
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/434

コメントする