Comunidad de diseño web y desarrollo en internet online

Como detectar si un mc determinado está en el escenario?

Citar            
MensajeEscrito el 02 Feb 2011 08:06 am
Buenos días a todos:
Dependiendo de la programación, en ocasiones cargo un mc en el escenario usando:

Código ActionScript :

var lineas1_loader:Loader = new Loader();
lineas1_loader.load(new URLRequest("frame.png"));
addChild(lineas1_loader);
lineas1_loader.x = 60;
lineas1_loader.y = 104;

En función de la evolución de la navegación del usuario, en ocasiones tengo que borrar del escenario este loader, y lo hago con: removeChild(lineas1_loader);

Hasta aquí, todo bien. El problema surge cuando se hace el removeChild sin que se antes se haya cargado. Estoy intentando resolverlo con:

Código ActionScript :

if (this.lineas1_loader.visible == true)
{removeChild(lineas1_loader);}


Pero esto no funciona. La pregunta es: ¿cómo puedo detectar si el mc está ya cargado o no en el escenario?

Un saludo a todos y gracias por vuestra ayuda

Angel

Por potez36

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Feb 2011 10:34 am
Pues AS3 tiene un muy buen manejo de los childs, con un for puedes recorrer todos los depths, y pedir el name de los objetos.

Sin embargo, para tu caso, sería más cómodo y correcto usar unloadAndStop (http://kb2.adobe.com/cps/403/kb403670.html).

Código ActionScript :

lineas1_loader.unloadAndStop();


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 02 Feb 2011 12:00 pm
Tratando de completar lo de Hernan, dale valor a la propiedad "name" del loader y haz el addChild en el loadComplete

Código ActionScript :

var lineas1_loader:Loader = new Loader(); 
lineas1_loader.name="loader1" //<--este es el nombre por el que preguntaremos
                      //con un getChildByName("loader1")
lineas1_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(e:(event:Event){
     var loader:Loader=e.target.loader as Loader
     addChild(loader); 
     loader.x = 60; 
     loader.y = 104; 
     trace(loader.name)
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Mar 2011 08:47 am
Con retraso (perdón), pero muchas gracias por la ayuda
Un saludo
Angel

Por potez36

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jul 2013 12:49 pm
Otra forma:

if (my_loader_loader.stage != null)
{
removeChild(my_loader_loader);
}
La primera sentencia comprueba que my_loader_loader está en el escenario, y la quita si es así

Por potez36

30 de clabLevel



 

firefox

 

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