オブジェクトの各メンバーを反復しようとしています。各メンバーについて、それが機能であるかどうかをチェックします。それが関数であれば、その名前を取得し、その関数の名前に基づいていくつかの論理を実行したいと思います。私もこれが可能かどうかわからない。それは...ですか?任意のヒント?Actionscript 3イントロスペクション - 関数名
例:
var mems: Object = getMemberNames(obj, true);
for each(mem: Object in members) {
if(!(mem is Function))
continue;
var func: Function = Function(mem);
//I want something like this:
if(func.getName().startsWith("xxxx")) {
func.call(...);
}
}
私は苦労これを行うに多くを見つけることを抱えています。助けてくれてありがとう。
キャスティングは非常に高価であるとして、あなたはまた、「です」または「と」のようなものを使用して、あなたがチェックしているオブジェクトをキャストすることは避けてください - この例がそうであるようはるかに良いです。 – quoo
私が間違っている場合は私を修正しますが、私はあなたが機能にキャストできるとは思わない。 –
@Tyler Egeto:確かに、私は信じていますが、すぐに呼び出すことはできません:Function(o [name])()、あなたはそれを保存する必要があります:var foo:Function = Function(o [name] ); foo(); –