Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2010, 01:20
CidDeMizar
 
Fecha de Ingreso: septiembre-2009
Mensajes: 17
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Crear funciones dinámicamente con for() en AS2

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