人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ActionScriptn3を利用して
Function型からその関数名取得する関数の作り方を教えてください。

//関数のオブジェクトを渡すとその関数名が返ってきます。
function getFuncName(func:function):String
{
//ここに何を書けばいいかを教えてください。
}

//関数例
function hoge()
{
}

//利用例
var name = getFuncName(hoge);
//nameには"hoge"が入る

●質問者: zio3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge name String オブジェクト 名取
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makiton
●100ポイント ベストアンサー

オブジェクトから変数名などコードの情報を取得することをリフレクションといいます。

正直AS界隈にはあまり明るくないのですが、興味があったので調べてみました。

メソッドが定義されているオブジェクト(以下の例はthis)が分かっているという前提で書きました。

function hogehoge():void
{
}

function getFunctionName(o:Object, method:Function):String
{
var methodName:String = null;

var describeXML:XML = describeType(o);
for each(var methodXML:XML in describeXML.method){
trace(methodXML.@name+"?n");
if(method == this[methodXML.@name]){
methodName = methodXML.@name;
break;
}
}

return methodName;
}

trace(getFunctionName(this,hogehoge));

describeTypeがミソですね。

要件を満たすものかどうかちょっと自信がないですが、一応こんな方法がある、ということで。

参考になれば幸いです。

◎質問者からの返答

ありがとうございます。

完全に自分の求めていた答えです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ