Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2010, 08:35
limonrojo
 
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Crear funciones dinámicamente con for() en AS2

Cita:
Iniciado por CidDeMizar Ver Mensaje
como tú has dicho, se genera una única función y todos los botones te hacen lo mismo. Para evitarlo, puedes asignar a cada botón una función distinta, teniendo en cuenta su nombre, de esta manera:
Código:
for(i=1; i<10;i++){
	_root.attachMovie("mcBtnBase", "boton"+i, this.getNextHighestDepth());
	_root["boton"+i]._x = 10+i*40;
	_root["boton"+i]._y = 10+i*40;
	_root["boton"+i].texto.text = "Boton "+i;
	
        //aquí viene lo diferente
        _root["boton"+i].onRelease =function(){
       //partimos el nombre del botón para sabrer su número
       var partes = this._name.split("boton");
       //guardamos el número en una variable que usaremos como parámetro
       var parametro:String = partes[1];
       //generamos la url deseada;
       var laURL:String = "http://www.google.com/"+ parametro;
       //asignamos lo que tiene que hacer
	getURL(laURL);
	};
	
}
También otra opción es generar una sola función, pero que admita parámetros. Luego, en el onRelease del botón le envías un parámetro distinto, en función de su nombre o lo que quieras.

Espero que esto te dé alguna pista de cómo hacerlo
EXELENTEEEEEEEEE!!!
Muchas gracias, la verdad llevaba bastante tiempo con esta cuestión y claramente, la posibilidad de crear funciones dinámicamente es una herramienta muy potente, por lo menos para mi.
De nuevo, muchas gracias!