Comunidad de diseño web y desarrollo en internet online

Problema con removeMovieClip()

Citar            
MensajeEscrito el 14 Ago 2015 07:31 pm
Buenas tardes, tengo un problema con el codigo de mi juego que no logro corregir y me gustaria que alguno de vosotros que sabe mucho mas de as2 que yo, me ayudase a encontrar el problema.

El juego crea varios "Enemigos" en pantalla, con attachMovie, y reciben un nombre, ["Enem"+variable].
La profundidad de estos enemigos depende de su posicion y, haciendo que el enemigo que este mas arriba sea tambien el que este mas lejos. Cada vez que se crea uno de estos enemigos, se introducen en un array. La siguiente funcion se ejecuta con el array de los enemigos en un this.onEnterFrame = function(). El codigo de la funcion es este:

Código :

function Profundidad(ArrayObjetos:Array) {
   var i:Number, j:Number;
   
        ArrayObjetos.sort(comparar);

   for (i=0; i<ArrayObjetos.length; i++) {
      for (j=i+1; j<ArrayObjetos.length; j++) {
         if (ArrayObjetos[i].getDepth()>ArrayObjetos[j].getDepth()) {
            
            ArrayObjetos[i].swapDepths(ArrayObjetos[j]);
         }
      }
   }
}
function comparar(a:MovieClip, b:MovieClip):Number {
   return a._y-b._y;

}


Bien, pues cuando creo una funcion para eliminar esos enemigos, o mas bien, esos MovieClips, llamados Enem1, Enem2, Enem3... con removeMovieClip(), se eliminan todos excepto el que tiene mas profundidad, que se queda reproduciendose hasta que cambio de fotograma.

El codigo de la funcion para borrar es simple:

Código :

function Borrar() {
for (k=0; k<=oleadax[numoleada].length; k++) {
      this["Enem"+k].removeMovieClip();
   }
}


¿Porque se sigue reproduciendo ese MC, si lo elimino con removeMovieClip?

Un dato es que si elimino la funcion Profundidad de mi codigo, si se eliminan todos los enemigos sin problema, asi que pienso que el problema esta en esta misma funcion.

Muchisimas gracias Cristalab.

Por deirito

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Ago 2015 08:31 pm
Bien, he conseguido arreglarlo.

Me di cuenta de que, el MC se borraba pero su animacion quedaba en el escenario hasta que se cambiara de frame.
Simplemente introduci el MC del suelo en el array de profundidades, asi el suelo siempre seria el Mc mas profundo, evitando que sucediera eso, que aun no se a que se debia.

Muchas gracias de todas formas.

Por deirito

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Ago 2015 12:54 pm
Solo un warning: te veo trabajar con código levemente complejo en AS2, que dejó de ser soportado en Flash al cumplirse casi una década del desembarco de AS3. Te recomendaría que intentes utilizar AS3 o busques ejemplos para basarte que sean de AS3

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 Ago 2015 04:14 pm
Es dificil pasar de as2 a as3? Es muy diferente? Se también C, por si tienen similitudes que me hagan aprender mas rapido. Muchas gracias.

Por deirito

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 17 Ago 2015 11:38 am
Lo mas similar a AS3 es Java. AS3 es un lenguaje muy orientado a objetos ... C es bastante mas procedural, Pero inténtalo si quieres hacer cosas serias

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Ago 2015 07:04 pm
Supongo que sera algo parecido a As2. De todas formas, aprender As3 me vendra bien para este curso que entra en la universidad para JAVA. Muchas gracias

Por deirito

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 19 Ago 2015 08:11 pm
Es bastante distinto a AS2, por eso mucha gente nunca pudo hacer el pasaje. Y sin duda te ayudará con Java

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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