Comunidad de diseño web y desarrollo en internet online

Error con RemoveChild

Citar            
MensajeEscrito el 02 Dic 2013 11:32 pm
Hola,

Tengo dos clases: MenuVentas y MasVendidos. La clase MenuVentas agrega al escenario dos MovieClips: miFondoTransparente y masVendidos. Luego desde la clase MasVendidos a través de un evento llamo a la función Borrar que está dentro de MenuVentas que elimina del escenario los dos MovieClips previos mencionados. Sin embargo obtengo un error: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

A continuación mis dos clases:

Código ActionScript :

public class MenuVentas extends MovieClip
{
                public static const ELIMINAR:String = "eliminar";
                private var miFondoTransparente:FondoTransparente = new FondoTransparente();
                private var _stage: Stage;

                public function MenuVentas(pstage: Stage)
      {
         _stage = pstage;
                        addEventListener(MenuVentas.ELIMINAR, Borrar);
                        addEventListener(MouseEvent.CLICK, HizoClick);
                        masVendidos = new MasVendidos(_stage);
       }

                private function HizoClick (e:MouseEvent):void
       {
          switch (e.target.name)
          {
             case "recibo_btn":
                _stage.addChild(miFondoTransparente);
                _stage.addChild(masVendidos);
          }
       }

                public function Borrar(e:Event):void
       {
         _stage.removeChild(miFondoTransparente);
         _stage.removeChild(masVendidos);
      }
}


Código ActionScript :

public class MasVendidos extends MovieClip
{
                private var _stage: Stage;
                var miMenuVentas: MenuVentas = new MenuVentas();

                public function MasVendidos(pstage: Stage) 
      {
                           addEventListener(MouseEvent.CLICK, HizoClick);
                }

               private function HizoClick (e:MouseEvent):void 
      {
         switch (e.target.name)
         {
            case "cerrar_btn":
               miMenuVentas.dispatchEvent(new Event(MenuVentas.ELIMINAR));
               break;
         }
      }
}


Muchas gracias por su tiempo.

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 03 Dic 2013 11:59 am
Yo lo que hago cuando quiero descargar un objeto del escenario desde otra clase es lo siguiente:

En la clase que maneja el botón que dispara el evento:

Código ActionScript :

function unloadswf(event:MouseEvent)
{
   dispatchEvent(new Event("descargar", true));
   trace("event dispached");
}


y en la clase principal tengo:

Código ActionScript :

function descargaSeccion(event:Event):void
{
   //descarga la seccion
   var descargar:MovieClip = MovieClip(loader.content);
   descargar.addEventListener("descargar",closeSeccion);
}


Supongo que será algo parecido.

Mirate este ejemplo:

[url=http://www.cristalab.com/tutoriales/comunicacion-entre-peliculas-usando-clases-en-as3-c104548l/][/url]

Espero que te sirva.

Un saludo.

Por plug

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Dic 2013 08:58 am
Hola
¿Compruebas si el mc está en el escenario?
A mi eso me pasaba si haacía un removeChild de un objeto si no estaba en el escenario.
Lo resolví con est

if (nombre.stage != null)
{
removeChild(nombre);
}
Espero que te valga

Saludos

Por potez36

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Dic 2013 06:36 pm
algo que hago yo es tener una function removeDisplay, que remueva un elemento sin importar donde este, porque lo que quiero es no verlo mas.

Código ActionScript :

function removeDisplay(e:DisplayObject):void
{
     if(e)
     {
          if(e.parent)
          {
               e.parent.removeChild(e);
          }
     }
}


Saludos

eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome

 

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