Voy a explicar la idea de esto, de lo quiero lograr y lo que no he logrado.
a ver si alguien me entiende y me puede ayudar, esta algo largo, pero es sencillo de entender
Se trata de una funcion que (entre otras cosas) ejecuta otra funcion, lo hago asi:
Código :
//Funcion que recibe parametro, y no devuelve nada
var miFuncion2:Function = function(miVariable:Number):Void {
trace("miFuncion2 se ha ejecutado");
trace("miVariable= "+miVariable);
};
//Funcion que ejecuta como funcion, el nombre que recibe como parametro
var funcionQueEjecutaFuncion:Function = function(queFuncion:Function):Void{
trace("funcionQueEjecutaFuncion se ha ejecutado");
trace("queFuncion= "+queFuncion);
queFuncion();
trace("\n")
};
funcionQueEjecutaFuncion(miFuncion2);
...pero obviamente no ejecuta el parametro de la funcion que ejecuta...
Y lo que deseo hacer es que (ademas de ejecutar le la funcion que recibe como parametro) ejecute el parametro o parametros de la funcion que ejecuta...
por que?
Pues porque es una funcion para AS2, que como mencione, (entre otras cosas) ejecutara: una funcion y todos sus parametros....digamos que de esta manera PRETENDO llamarla:
funcionQueEjecutaFuncion(miFuncion2(99));
pero no se deberia ejecutar asi:
funcionQueEjecutaFuncion(miFuncion2,99);
[obviando que el segundo parametro seria el parametro de la primera funcion, lo cual si es posible de hacer pero no conveniente]
por que?
por que en el titulo de este post puse ...que ejecuta funciones cualquiera ...o sea genericas, de las cuales no conocemos sus parametros, y eso no serviria por que tendria que declarar la funcion mas o menos asi:
Código :
var funcionQueEjecutaFuncion:Function = function(miFuncion2:Function,miVariable:Number) {
}o sea, conociendo el numero de parametros que requiere la funcion que va a ejecutar
PUES ESO ES TODO.
ya lo intente de esta manera:
Código :
/*Funcion que ejecuta como funcion el nombre que recibe como parametro,
pero que ademas, ejecuta los parametros de la funcion que recibe*/
var funcionQueEjecutaFuncion2:Function = function(queFuncion:Function):Void{
trace("funcionQueEjecutaFuncion2 se ha ejecutado");
trace("quefuncion= "+queFuncion);
//queFuncion;
trace("\n");
};
funcionQueEjecutaFuncion2(miFuncion2(111)); pero lo que hace es que primero ejecuta la funcion que tiene dentro [esto: miFuncion2(111) ] y lo hace correctamente pero no en el ambito de funcionQueEjecutaFuncion2..puesto que funcionQueEjecutaFuncion2 no la reconoce..
por ejempo hacer:
estaFuncionNoExiste(miFuncion2(111));
en efecto, ejecuta a miFuncion2...pero no por una orden de estaFuncionNoExiste();...por que en efecto estaFuncionNoExiste NO EXISTE.
cualquier aportacion a mi duda, sera bien agradecida.
O aguna recomendacion de que tecnica utilizar, o aunque sea, que me digan que lo quiero hacer no se puede.
SALUDOS.
