Foros del Web » Creando para Internet » Flash y Actionscript »

Error en bucle for

Estas en el tema de Error en bucle for en el foro de Flash y Actionscript en Foros del Web. Hola amigos. Empezando a hacer mis pinitos con AS2 me encontrado con un problema que soy incapaz de resolver. Tengo 4 mc en la escena ...
  #1 (permalink)  
Antiguo 30/04/2009, 11:47
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años
Puntos: 58
Error en bucle for

Hola amigos. Empezando a hacer mis pinitos con AS2 me encontrado con un problema que soy incapaz de resolver. Tengo 4 mc en la escena principal cuyas instancias las nombro alava, navarra, barcelona y soria. La idea es que al clicar en cada una de ellas esta cambia de color y vuelve al color original el mc que había sido clicado anteriormente. (parece sencillo), a traves de tres eventos.
onRelease, onRollOut y onRollOver. Para no tener que escribir el código una vez para cada mc, cree tres funciones que pretendia llamar a traves de un bucle for. Este es el código.
Código:
/*creo un array con los nombres de los mc*/
var provincia:Array = new Array(alava, barcelona, navarra, soria);
/*empiezo el bucle*/
for (i=0; i<4; i++) {
	trace(provincia[i]);
	provincia[i].onRollOut = function() {
		fuera(provincia[i]);
	};
	provincia[i].onRelease = function() {
		clic(provincia[i]);		
	};
	provincia[i].onRollOver = function() {
		dentro(provincia[i]);
	};
	
}
El trace me muestra correctamente las provincias, sin embargo el resto no funciona nada de nada. Llevo todo el día dándole vueltas pero nada... ¿Alguien puede ayudarme?
  #2 (permalink)  
Antiguo 01/05/2009, 03:21
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 9 meses
Puntos: 23
Respuesta: Error en bucle for

Hola amigo!!

Vi el codigo y esta perfectamente! Lo que esta mal es tu logica.

1.-Como tu bien lo mencionas onRelease, onRollOut y onRollOver son eventos, estos eventos son herencia de la clase objeto y que a su vez heredan los MC y botones. Pero como tal, los arrays no tienen esta herencia.

A hora, talvez te pudiera funcionar si las provincias las escribes entre comillas en el array ejemplo: ...("barcelona","navarra".);.

2.-Si es que funciona ya entre comillas, estoy casi seguro que solo el MC soria le funcionarian las funciones Pues es el 4to MC y la variable i queda en 4.

Espero, esto te sea de utilidad.
__________________
Un buen programa depende de la imaginación.
  #3 (permalink)  
Antiguo 01/05/2009, 03:59
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años
Puntos: 58
Respuesta: Error en bucle for

Hola Turdo. Todo perfecto, me has sido de mucha utilidad ya que he encontrado una forma en la que funciona apoyándome en tus comentarios.
Código:
provincia = new Array("alava", "barcelona", "navarra", "soria");
for (var i:Number=0; i<4; i++) {
	eval(provincia[i]).onRollOut = function() {
		fuera(this);
	};
	eval(provincia[i]).onRelease = function() {
		clic(this);
	};
	eval(provincia[i]).onRollOver = function() {
		dentro(this);
	};
}
No se si será muy ortodoxo, pero funcionar, funciona de PM. Gracias
  #4 (permalink)  
Antiguo 02/05/2009, 13:45
Avatar de Turdo  
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 9 meses
Puntos: 23
Respuesta: Error en bucle for

Hola de nuevo!

Me complace que te hayan sido utiles mis palabras. Y en programacion hay mil formas de resolver un problema; asi que, nada es ortodoxo. Bye.
__________________
Un buen programa depende de la imaginación.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:24.