Comunidad de diseño web y desarrollo en internet online

Remover MovieClip = misión imposible

Citar            
MensajeEscrito el 20 Jun 2011 10:04 pm
gracias a todos por leer este post,
tengo un movie clip "perro", y un segundo MovieClip "hueso", el "perro" se mueve con las flechas del teclado, y hay un hueso en el escenario, cuando el perro se acerca a el hueso, con el hitTest, pude lograr que al chocar los movieclips el "perro" hiciera una animación y que el "hueso" apareciera con visible = false; lo que pasa es que una ves que termina la animación, cuando muevo al "perro" mientras este sobre el "hueso" (con visible = false;) vuelve a comenzar la animación de el, porque el "perro" esta sobre el "hueso", lo que necesito es que cuando el "perro se acerque al "hueso" el "hueso" se borre.

como lo hago.. como remuevo el Movieclip del "hueso"

ojo mi codigo

perro.addEventListener(Event.ENTER_FRAME,choque);
function choque(e:Event){

if(perro.hitTestObject(hueso)){
perro.gotoAndStop(3);
hueso.visible = false;


lo que necesito es que el ves de esa false del "hueso" poner algo para eliminarlo.. gracias de antemano

Por egonzalez

53 de clabLevel



Genero:Masculino  

C.R.

chrome
Citar            
MensajeEscrito el 21 Jun 2011 04:53 am
Bueno, me podrán corregir con código más tangible, pero básicamente puedes hacer dos cosas:

1. Eliminar el movieclip "hueso" con removeChild

>> Si no hay hueso con que chocar, ya no se reproduce la animación.

2. Remover el listener para que ya no reconozca el hit del "perro" con el "hueso":

Código ActionScript :

perro.addEventListener(Event.ENTER_FRAME,choque); 

function choque(e:Event){
if(perro.hitTestObject(hueso)){
perro.gotoAndStop(3);
hueso.visible = false; 
// < - - - - - - [agrega esto] - - - - - - - - - - - - - - - - - - - - 
perro.removeEventListener(Event.ENTER_FRAME,choque); 
//  - - - - - - -[agrega esto] - - - - - - - - - - - - - - - - - - - - >
}
}


>> Si le quitas la indicación al perro de hacer la animación cada vez que se topa con un hueso ya no necesitas eliminar de pantalla al hueso de pantalla, aunque lo tengas oculto.

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jun 2011 10:37 am
En lo personal, haria las dos cosas que driegon ha mencionado. Primero, eliminar el hueso con un removeChild:

Código ActionScript :

removeChild(hueso);
hueso = null;

El poner hueso como null hace que el 'garbage collector' lo borre de memoria a la hora de 'recolectar la basura', lo mismo al remover el eventListener, por eso es bueno lo de removeEventListener, para que no existan cosas innecesarias en nuestra aplicacion.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 21 Jun 2011 02:24 pm
muchas gracias, llevaba ya mucho tiempo en esto.
Se les agradece bastante.

Por egonzalez

53 de clabLevel



Genero:Masculino  

C.R.

chrome
Citar            
MensajeEscrito el 21 Jun 2011 03:52 pm
"Bastante" ... mmm ... yo pensaba que se agradecía o no .... o quisiste decir que bastante es un 50% a driegon y otro 50% a Acreonte .... o no hay tanta igualdad?

Jorge

PD. No hace falta que contestes, me dio gracia lo de bastante

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 21 Jun 2011 08:34 pm
jajaja... bastante a cada uno == 100% a cada uno

xD

Por egonzalez

53 de clabLevel



Genero:Masculino  

C.R.

chrome

 

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