Comunidad de diseño web y desarrollo en internet online

Horrible problema con As3 y Flash.

Citar            
MensajeEscrito el 25 Sep 2008 01:50 am
Hace ya un tiempo no usaba Flash.
Pero es que ahora se a vuelto totalmente loco y nada funciona como debería. Los códigos andan como se les plasca y no como yo ordene. Este es un ejemplo:

(Lo Único Extra al código, es un MC en la librería con el Link de "pieza", este MC es un cuadrado de 20x20 que es de distintos colores en los frames 1,2,3)

Código ActionScript :

var Levels:Array=new Array([
[0,1,2],
[3,0,0],
[0,0,0]
]);

function loadLevel(N:Number){
for(var ejey:Number=0; ejey<Levels[N].length; ejey++){
for(var ejex:Number=0; ejex<Levels[N][0].length; ejex++){
var Box:pieza=new pieza();
addChild(Box);
Box.gotoAndStop(Levels[N][ejex][ejey]+1);
Box.y=ejey*20;
Box.x=ejex*20;
}   
}
};
loadLevel(0);


Este codigo debería hacer un "mapa" ordenado.... El problema es que lo deja invertido...
Para solucionar... lo que hice fue cambiar....esta parte:

Código :

for(var ejey:Number=0; ejey<Levels[N].length; ejey++){
for(var ejex:Number=0; ejex<Levels[N][0].length; ejex++){

por

Código :

for(var ejex:Number=0; ejex<Levels[N].length; ejex++){
for(var ejey:Number=0; ejey<Levels[N][0].length; ejey++){

(los ejex, los cambie por ejey, y los ejey por ejex)
...No funciono...
Entonces, volví a dejar esta parte igual a antes (los ejex de vuelta a ejey, y los ejey de vuelta a ejex) xD
Bueno, seguia mal... OBIO...Entonces cambie esta parte.

Código :

Box.y=ejey*20;
Box.x=ejex*20;

por

Código :

Box.y=ejex*20;
Box.x=ejey*20;

(De nuevo inverti...)
Lo raro es que ahora si funciono bien XD es un poco ilogico ya que hize lo mismo pero de distintas maneras...
Además me han pasado MUCHISIMAS otras cosas raras con otros codigos.
Como Frames que simplemente no responden... osea cualquier cosa que tengan a dentro no funciona.
Condicionales enloquesidos que devuelven True, o False a su gusto o simplemente no reaccionan.


ME TIENE LOCO!!! ¿QUE PASO?!!? ¿UN VIRUS? No se que miiiierrrdaaaa le pasa a mi Flash...

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 25 Sep 2008 04:04 am
Yo no soy un experto en actionscript ni mucho menos, pero podrías probar tu código en otra máquina para ver si es problema de tu instalación,y luego reinstalas para ver si así se corrige el problema. Lo que podría pasar es que por la posición de la luna se da daño el compilador de tu instalación de flash, pero es solamente una suposición.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 25 Sep 2008 07:34 am
Lo que no entiendo en absoluto es que te muestre algo parecido, los bucles deberían ser

for(var ejey:Number=0; ejey<Levels[N].length; ejey++){
for(var ejex:Number=0; ejex<Levels[N][ejey].length; ejex++){
}
}

y te recorrería 0,1,2,3,0,0,0,0,0

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 08:56 pm

Eliseo2 escribió:

Lo que no entiendo en absoluto es que te muestre algo parecido, los bucles deberían ser

for(var ejey:Number=0; ejey<Levels[N].length; ejey++){
for(var ejex:Number=0; ejex<Levels[N][ejey].length; ejex++){
}
}

y te recorrería 0,1,2,3,0,0,0,0,0

No no importa si pongo 0 o no..pues la idea es que todos tengan la misma cantidad.... Aunque es buena idea ponerlo así xD Para que no de problemas....

¿Que supuesta mente esta mal en en blucle?

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 25 Sep 2008 08:58 pm
Tu dijiste que me recorrería 0,1,2,3,0,0,0,0,0
Pero me lo ordena como
2,0,0,1,0,0,0,3... :S

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 26 Sep 2008 06:53 am
Pongo un ejemplo en AS.2 -no tengo a mano AS.3-
Creo un Símbolo cuyo nombre de identificador es cajaID y que tiene en su interior una caja de texto cuyo nombre de instancia es "caption"

Código :

var Levels:Array = new Array([[0, 1, 2], [3, 0, 0], [0, 0, 0]]);
N = 0;
i = 0;
for (var ejey:Number = 0; ejey<Levels[N].length; ejey++) {
   for (var ejex:Number = 0; ejex<Levels[N][0].length; ejex++) {
      i++;
      var mc = attachMovie("cajaID", "mc"+i, i);
      mc._x = 100+ejex*50;
      mc._y = 100+ejey*50;
      mc.caption.text = Levels[N][ejey][ejex];
   }
}


NOTA:Ten cuidado con el "N" que le mandas. Flash tiene la manía de que, cuando se sobrepasa el índice de un array comienza por el principio. Por ejemplo Levles[0][0][4] es igual que Levels[0][0][0]

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2008 07:18 am
Vale, leyendo tu primer código es:

Código :

Box.gotoAndStop(Levels[N][ejey][ejex]+1); 

Por Eliseo2

710 de clabLevel



 

firefox

 

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