Comunidad de diseño web y desarrollo en internet online

Eliminar un Child de un contenedor

Citar            
MensajeEscrito el 29 Jun 2008 02:11 pm
Tengo esto:

Código :

if(gMargenes == "si"){
      var margenArriba:Shape = new Shape();
        margenArriba.graphics.lineStyle(1, 0x666666);
        margenArriba.graphics.moveTo(mc1.x - mc1.width/2, mc1.y - mc1.height/2);
      margenArriba.graphics.lineTo(mc1.x + mc1.width/2, mc1.y - mc1.height/2);
        zona.addChild(margenArriba);
      var margenAbajo:Shape = new Shape();
        margenAbajo.graphics.lineStyle(1, 0x666666);
        margenAbajo.graphics.moveTo(mc1.x - mc1.width/2, mc1.y + mc1.height/2);
      margenAbajo.graphics.lineTo(mc1.x + mc1.width/2, mc1.y + mc1.height/2);
        zona.addChild(margenAbajo);
   }else{
      zona.removeChild(margenArriba);
      zona.removeChild(margenAbajo);
   };


Y no consigo eliminar los Childs introducidos. Me da este error:

Código :

TypeError: Error #2007: El valor del parámetro child debe ser distinto de null.
   at flash.display::DisplayObjectContainer/removeChild()


Gracias por la ayuda

Por gronsi

31 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2008 09:42 am
El problema es que cuando gMargenes no tiene valor "si" entonces trata de eliminar a margenArriba y margenAbajo, pero esos nombres son los nombres de la variable que utilizaste en la condición "si" y las instancias margenArriba y margenAbajo no tienen propiedad de name dentro de zona.

Debería quedar así:

Código :


var margenArriba:Shape;
var margenAbajo:Shape;

if(gMargenes == "si"){

        margenArriba = new Shape();
        margenArriba.graphics.lineStyle(1, 0x666666);
        margenArriba.graphics.moveTo(mc1.x - mc1.width/2, mc1.y - mc1.height/2);
        margenArriba.graphics.lineTo(mc1.x + mc1.width/2, mc1.y - mc1.height/2);

        zona.addChild(margenArriba).name = "margenArriba";

        margenAbajo = new Shape();
        margenAbajo.graphics.lineStyle(1, 0x666666);
        margenAbajo.graphics.moveTo(mc1.x - mc1.width/2, mc1.y + mc1.height/2);
        margenAbajo.graphics.lineTo(mc1.x + mc1.width/2, mc1.y + mc1.height/2);

        zona.addChild(margenAbajo).name = "margenAbajo";

   }else{

      margenArriba = zona.getChildByName("margenArriba") as Shape;
      margenAbajo = zona.getChildByName("margenAbajo") as Shape;

      zona.removeChild(margenArriba);
      zona.removeChild(margenAbajo);

   };

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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