Comunidad de diseño web y desarrollo en internet online

condicion objeto Loader

Citar            
MensajeEscrito el 30 May 2011 09:56 pm
Hola!!

En mi Main tengo un boton que me carga un swf externo, hasta ahi bien

y en mi Main tengo otro boton que debe cumplir varias funciones segun lo que este pasando en el main , entonces quiero decirle a este boton esto:

Código ActionScript :

removeChild(loader)


pero eso lo debe hacer solo si si el objeto loader ha sido cargado, osea mi swf externo,

entonces quiero algo como:

Código ActionScript :

if("MI SWF EXTERNO ESTA CARGADO"){
removeChild(loader);
}else{
"OTRAS COSAS"
}


Gracias Chicos

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2011 03:16 am
Tienes que agregar un listener al Loader.contentLoaderInfo para que te avise cuando terminó de cargar, sería algo así

Código ActionScript :

var cargado:Boolean  = false;
var cargador:Loader = new Loader();
cargador.addEventListener(Event.COMPLETE, completo);
cargador.load(new URLRequest('algun.swf'));
function completo(evt:Event){
  cargado = true;
}


Puedes chequear la variable cargado para ver si ha terminado la carga

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 May 2011 01:48 pm
Hola Jorge!
mira lo tengo asi, funciona!
carga y descarga, pero una vez descargado el loader si oprimo de nuevo el boton para descargarlo me da:

Código ActionScript :

ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
   at flash.display::DisplayObjectContainer/removeChild()
   at clases::Main/::removerTel()


y esto tengo en mi main:

Código ActionScript :

private var loader:Loader = new Loader();
private var cargado:Boolean  = false;

...

llamar_mc.addEventListener(MouseEvent.CLICK, cargaTel);
colgar_mc.addEventListener(MouseEvent.CLICK, removerTel);

...

private function cargaTel(e:MouseEvent):void{
               loader.load(new URLRequest("swf/telefono.swf"));
               loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completoTel);
            }
            

            private function completoTel(e:Event){
               cargado = true;
               addChild(loader);
               } 
               
            private function removerTel(e:MouseEvent):void{
               if(cargado == true){
                  removeChild(loader);
                  trace("sisin");
               }else if(cargado == false){
                  trace("nocas");
               }
            }


que faltara?

Gracias

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2011 02:01 pm
El error es porque queres quitar del displayList un objeto que no esta en el displayList (ya lo quitaste).
Podrias desactivar el colgar_mc luego de remover el loader o comprobar que exista el loader en el displayList antes de usar removeChild(loader)

Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 May 2011 02:03 pm
supongo que al hacer esto:

Código ActionScript :

if(cargado == true){ 
                  removeChild(loader); 
                  trace("sisin"); 
               }

evaluo si si esta el loader
y ya intente desactivarlo con enabled, pero da igual

que sera?

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2011 02:07 pm
En efecto, no puedes removerlo si ya lo hiciste antes. Una fácil para evitarte el error es un try catch

Código ActionScript :

 if(cargado == true){ 
             try{
                  removeChild(loader); 
                  trace("sisin"); 
              } catch(e:Error){}
   }else if( .....


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 May 2011 02:14 pm
ohh
excelente
pero dime Jorge, que fue excatamente lo que himos?
para que sirve try?

Gracias!!!

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2011 02:17 pm
Intenta hacer algo, pasa un error en el catch (el objeto error que tienes en el catch) Si imprimieras e.message te daría el error que ya viste

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 May 2011 07:24 pm
Hola!
y ese boton que remueve el swf cargado tambien puede usarse para llmar funciones que estan en le hijo?

Por dianita666

Claber

185 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Jun 2011 01:54 pm
En la medida que ambos esten en escena, que la ruta del llamado sea correcta y que el metodo al que llama sea público

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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