関数パラメーターに基づいて、addEventListener内から動的に関数名を呼び出したいと思います。
と呼んでnewMod("moduleA", "A");
いますが、エラーが発生していますTypeError: Error #1006: value is not a function.
この関数を動的に呼び出す方法に関する提案。使用に関するいくつかの回答を見てきましたinstance[function]()
が、それがリスナーにどのように適用されるかはわかりません。
public function newMod(mdLd,evtTyp,param):void {
info = ModuleManager.getModule(mdLd);
var mevth:String = ("modEventHandler"+(evtTyp));
info.addEventListener(ModuleEvent.READY, function(e:ModuleEvent){
this[mevth](e, param)});
info.load(null, null, null, moduleFactory);
}
private function modEventHandlerA(e:ModuleEvent):void {
vg1.addElement(info.factory.create() as IVisualElement);
}
[編集]はthis[mevth]()
動作への呼び出しを変更するように見えますが、必要に応じて追加のパラメーターを渡すことがthis[mevth](parm)
できないようです。つまり、提案を歓迎します。
また、リスナーを更新して関数呼び出しを含めましたが、それでも喜びはありません