Primero el script:
Ejemplo de uso:
Vaya, pues gracias a la duda que me expuso rafa fue que hice este script muy útil. Su finalidad es crear funciones globales iguales asignándoles un nombre a cada función (determinado por nosotros). Este script les ayudará a crear las funciones (iguales) de eventos para los objetos creados con el memory (cuando crean más de 1 del mismo tipo).
La problemática que se presenta sin este script es que si crean más de un objeto del mismo tipo (en la misma página), a la hora de asignarle la función de los eventos querrán asignarle siempre la misma pero la función no dinstinguirá de que objeto proviene el evento y por ende sí en los eventos tenemos una función que afecte al objeto emisor del evento en realidad afectará a todos los objetos que compartan dicha función.
Lo lógico es crear una función para cada objeto (lo cual esta bien), pero cuando se crean un número indeterminado de objetos al vuelo es donde no sabríamos cuantas funciones pre-escribir en las funciones globales. Así que usando este script dichas funciones se generarían al vuelo al igual que los objetos.
El script se puede modificar a su gusto e incluso tienes muchas otras posibles funcionalidades como generar nombres de funciones aleatorios válidos para X sesión, etc.
La otra opción es corutinas también al vuelo jeje, pero esta opción me pareció más sencilla.
function CreateGlobalFunction(sFunName)
local sf = [[function %s(arg1,arg2)
return arg1+arg2;
end ]]
sf = string.format(sf, sFunName);
assert(loadstring(sf))();
end
CreateGlobalFunction("b1")
CreateGlobalFunction("b2")
Dialog.Message("Total: 1+9+5+3", (b1(1,9)+b2(5,3)));
La problemática que se presenta sin este script es que si crean más de un objeto del mismo tipo (en la misma página), a la hora de asignarle la función de los eventos querrán asignarle siempre la misma pero la función no dinstinguirá de que objeto proviene el evento y por ende sí en los eventos tenemos una función que afecte al objeto emisor del evento en realidad afectará a todos los objetos que compartan dicha función.
Lo lógico es crear una función para cada objeto (lo cual esta bien), pero cuando se crean un número indeterminado de objetos al vuelo es donde no sabríamos cuantas funciones pre-escribir en las funciones globales. Así que usando este script dichas funciones se generarían al vuelo al igual que los objetos.
El script se puede modificar a su gusto e incluso tienes muchas otras posibles funcionalidades como generar nombres de funciones aleatorios válidos para X sesión, etc.
La otra opción es corutinas también al vuelo jeje, pero esta opción me pareció más sencilla.