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.