我想根據函數參數動態調用addEventListener中的函數名稱。flex4使用動態後綴在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]()
作品,但我似乎無法通過額外PARAMS需要即this[mevth](parm)
,歡迎任何建議。
我也更新了監聽器包括一個函數調用,但仍然沒有喜悅
thx爲迴應,你能提出一個更好的代碼格式嗎?我不明白朮語「封閉」,你可以指向一些信息,所以我可以理解這一點。 thx藝術 –
thx給這個正確的答案,因爲它做了什麼被問到和指出它可能會更好,thx藝術 –