Comunidad de diseño web y desarrollo en internet online

Funcion para Array

Citar            
MensajeEscrito el 16 Jun 2011 08:27 pm
Tengo una serie de clips con instancias a1, a2...a9 a los que quiero dar a todos la misma funcion de manera que todos se comporten independiente de la misma manera al pulsarlos.
El as que estoy intentando es:

Código ActionScript :

var fichas:Array = new Array('a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9');
for (i=0; i<9; i++) {
   trace(fichas[i]);
   fichas[i].onPress = function() {
      if (fichas[i]._alpha == 100) {
         p = false;
         fichas[i]._alpha = 50;
      } else if (fichas[i]._alpha == 50) {
         p = true;
         fichas[i]._alpha = 100;
      }

   };
}

El trace parece que funciona bien porque devuelve el array en diferente linea (supongo que eso significa que ve cada uno independiente lo cual queria para que se aplicase independientemente cada clip a la funcion).
El problema es que el onPress no funciona con fichas[i], parece que no aplica el resultado como esperaba. Estuve revisando los foros pero hasta ahora no veo nada que explique esto.
Quiza alguien sepa porque no pasa el resultado del array a la funcion.
Gracias por la ayuda.

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Jun 2011 08:53 pm
¿Miraste los foros? A lo mejor no lo encontraste porque este era un tíipico error de hace dos años, cuando todavía AS2 era dominante. El i se sobreescribe, deberías copiarlo al timeline del MC, pero en este caso ni siquiera, con solo usar this lo solucionas

Código ActionScript :

fichas[i].onPress = function() { 
      if (this._alpha == 100) { 
         p = false; 
         this._alpha = 50; 
      } else if (this._alpha == 50) { 
         p = true; 
         this._alpha = 100; 
      } 
 
   }; 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jun 2011 09:11 pm
Hola gracias por la respuesta.
No se si sere yo pero no me funciona, sigue haciendo el trace bien pero no funciona el .onPress.

var fichas:Array = new Array('a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9');
for (i=0; i<9; i++) {
trace(fichas[i]);
fichas[i].onPress = function() {
if (this._alpha == 100) {
p = false;
this._alpha = 50;
} else if (this._alpha == 50) {
p = true;
this._alpha = 100;
}
}
}

Me resulta raro porque deberia aplicarlo a la funcion, no?

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 16 Jun 2011 11:58 pm
Si lo que está en el array es el nombre de instancia, no los pongas con comillas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2011 02:33 pm
Gracias, sin comillas funciona perfectamente.

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.