Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2010, 16:15
Weahl
 
Fecha de Ingreso: mayo-2010
Mensajes: 52
Antigüedad: 14 años, 7 meses
Puntos: 0
¿Problema con removeChild?

Al pulsar un botón, se crea un mc que va de izquierda a derecha andando. Cuando choca con el "Objetivo", le quita la vida y cuando llega a cero se debe eliminar mc2 y mc podrán seguir andando.

El problema está en que mc sigue chocando con "Objetivo" aunque este haya sido borrado :S.

Aquí el código:

MC:
Código ActionScript:
Ver original
  1. static var ataque:Timer;
  2. var vel:uint;
  3.  
  4. function enterFrame(e:Event)
  5.         {
  6.             this.x += vel;
  7.  
  8.            
  9.             if(Game.objetivo)
  10.             {
  11.                 if(this.hitTestObject(Game.objetivo))
  12.                 {
  13.                     lucha();
  14.                 }
  15.             }
  16.            
  17.             if(Objetivo.vida <= 0)
  18.             {
  19.                 this.vel = 4;
  20.             }
  21.  
  22.         }
  23.  
  24. function lucha()
  25.         {
  26.             vel = 0;
  27.             this.x -= 5;
  28.                
  29.             ataque = new Timer(1000);
  30.             ataque.addEventListener("timer", nuevoAtaque);
  31.             ataque.start();
  32.         }
  33.        
  34.         function nuevoAtaque(e:Event)
  35.         {
  36.             Objetivo.vida -= 5;
  37.         }


Objetivo:

Código ActionScript:
Ver original
  1. static var vida:uint = 20;
  2.  
  3. function enterFrame(e:Event)
  4.         {
  5.            
  6.             if(Objetivo.vida <= 0)
  7.             {
  8.                 Objetivo.vida = 0;
  9.                 kill();
  10.             }
  11.         }
  12.  
  13. function kill()
  14.         {
  15.                 mc.ataque.stop();
  16.                 removeEventListener("enterFrame", enterFrame);
  17.                 stage.removeChild(this);
  18.         }


He copiado solo el código necesario para ver el problema.

Espero que alguien sepa solucionarlo, porque me trae ya loco y necesito hacer esto de cualquier manera.


Muchas gracias.