tl; dr --- Я пытаюсь создать объект и получить имя функции внутри этого объекта, затем сохранить объект, загрузить его позже и иметь возможность вызывать функцию, например, myFunction onMain.as , основанный на obj.fun (), где obj.fun = myFunction или obj.fun = "myFunction" ;
Iсоздать глобальную переменную
var master = {};
Я создаю объект таким образом
createMyObject():Object
{
obj = {
name:"myObject",
fun:myFunctionInMain
}
return obj
}
Затем я помещаю объект в массив
master.myArray.push(obj);
Затем сохраняю
save.data.master = master;
Затем я загружаю
master = save.data.master;
Затем я отслеживаю имя моего объекта следующим образом:
trace(master.myArray[0].name) // output is correct "myObject" so the save and load worked
, но когда я вызываю функцию
master.myArray[0].fun();
он говорит, что значение не является функцией.
Это работает нормально, пока я не сохраню, а затем загрузлю ... Это как если бы оно не сохраняло функцию внутри объекта .... поэтому я попытался поместить функциюв кавычках, внутри объекта, и он сохраняет строку, но я не могу понять, как вызвать функцию после этого после ее сохранения.
Я пытался
master.myArray[0][master.myArray[0]]() // didn't work
я пробовал
var fun:String = master.myArray[0]fun;
master.myArray[0][fun]() // didn't work
Я пытался
var fun:Function = master.myArray[0].fun;
fun(); // didn't work
Я очень благодарен вам за понимание здесь ... Я уже некоторое время вызываю функции изнутри объектов, но сейчасчто я хочу сохранить и загрузить, я вижу, что это не будет работать так.