Comunidad de diseño web y desarrollo en internet online

Problema con removeChild

Citar            
MensajeEscrito el 21 Sep 2010 10:16 pm
Saludos

Tengo unos datos que cargo con xml con la siguiente funcion

Código ActionScript :

//FUNCION QUE CARGA EL XML
function xmlLoader(){
function loadXML(e:Event):void{
    XML.ignoreWhitespace = true; 
    var map_xml:XML = new XML(e.target.data);
    for (var i:Number = 0; i < map_xml.location.length(); i++){
        var latlng:LatLng = new LatLng(map_xml.location[i].lat, map_xml.location[i].lon);
        var titulo = map_xml.location[i].name_tip;
        var descripcion:String = map_xml.location[i].des;
        var imagen:String = map_xml.location[i].imagen;
        map.addOverlay(createMarker(latlng,i, titulo, descripcion, imagen));
        
    }     
     // Agrega los markers en el mapa
    function createMarker(latlng:LatLng, number:Number, titulo, descripcion, imagen):Marker {
        var i:Marker = new Marker(latlng);
            i.addEventListener(MapMouseEvent.CLICK, function(event:MapMouseEvent):void{
            clip4.x = stage.stageWidth/2;
            clip4.y = stage.stageHeight/2;
            addChild(clip4);
            clip4.m_titulo.text = titulo;
            clip4.m_descripcion.text = descripcion;
            clip4.m_imagen.text = imagen;
            var contenedor:conte = new conte();
            contenedor.x = 184;
            contenedor.y = 65;
            var loader:Loader = new Loader();
            var imageRequest:URLRequest = new URLRequest(imagen);
            contenedor.addEventListener(MouseEvent.CLICK, function(event:MouseEvent){
});

            loader.load(imageRequest);
            contenedor.addChild(loader);
            addChild(contenedor); 
        });
            return i;
        }
    }
    var xmlLoader:URLLoader = new URLLoader();
    xmlLoader.addEventListener(Event.COMPLETE, loadXML);
    xmlLoader.load(new URLRequest("marcadores.xml"));
}


Luego tengo una funcion para cerrar el clip que se abrio y la imagen cargada

Código ActionScript :

//BOTON QUE LLAMA LA FUNCION QUE CIERRA EL POPUP
clip4.m_cerrar.addEventListener(MouseEvent.CLICK,m_cerrar);

//FUNCION QUE CIERRA EL POPUP DE MOSTRAR
function m_cerrar(e:MouseEvent):void {
    removeChild(clip4);
    removeChild(clip4.contenedor);
    boton.enabled=true;
}


Pero solo cierra el clip4, no cierra o borra la imagen cargada en contenedor, ya probe con:

removeChild(clip4.contenedor);
clip4.removeChild(contenedor);
clip4.contendor.removeChild(loader);
clip4.contendor.removeChild();
clip4.removeChild(loader);

y un monton mas y no logro eliminar la imagen que cargo con el XML

alguna sugerencia??

Muchas gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 21 Sep 2010 11:48 pm
perdona que te lo diga de esta manera, pero es medio desastroso lo que hiciste.

no conviene nunca usar funciones anonimas, ya que no vas a poder sacar el listener.

por lo menos hacelo de referencia debil (addEventListener ( 'evento' , 'funcion' , false , 0 , true );

ese ultimo 'true' es la clave.

ahora lo que pasa es que loader y contenedor son variables que existen DENTRO DE LA FUNCION createMarker.

insisto en que no es la mejor implementacion, pero una solucio deberia ser el siguiente codigo:

Código ActionScript :

// este codigo vacia de 'childs' un DisplayObjectContainer:

while ( clip4.numChildren )
   clip4.removeChildAt ( 0 );



espero sirva

Por voices

43 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Sep 2010 01:14 pm
Hola Voices, gracias por responder tan rapido

Gracias por las criticas, las voy a tener muy en cuenta en mis desarrollos.

Acerca de la solucion que planteas no funcionó, la implemente en el codigo, eliminé algunos espacios pero lastimosamente no trabajo, la imagen aun sigue sin eliminarse.

Hasta pronto

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 22 Sep 2010 02:38 pm
Solucionado

lo que hice fue agregar el child contenedor al clip4

con

clip4.addChild(contenedor);

hasta pronto

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 22 Sep 2010 03:15 pm
Saludos de nuevo, continuo en este topic para no abrir uno nuevo

ya logro que la imagen se cierre junto con el CLIP4

pero no se descarga, cuando un usuario da clic para ver una nueva ventana, muestra la imagen anterior mientras descarga la nueva imagen, como puedo solucionar esto??? ejemplos? sugerencias?? tutoriales??

gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 23 Sep 2010 01:06 am
no se en que parte del codigo esta el manejo de cambio de imagen, pero seguramente lo pusiste en una funcion que responde al evento Event.COMPLETE, mientras que deberia ser eliminado en la funcion de MouseEvent.CLICK

tampoco entiendo muy bien que estas intentando hacer xD

es algo con la API de googlemaps??

Por voices

43 de clabLevel



 

chrome

 

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