Comunidad de diseño web y desarrollo en internet online

PROBLEMAS CON ADDCHILD Y REMOVECHILD AS3

Citar            
MensajeEscrito el 25 Nov 2009 06:40 pm
Hola a todos

Tengo un problema a la hora de quitar un swf y cargar otro nuevo. No sé qué pasa que no se me quita el primer swf. El segundo ni aparece. Si me pudieráis ayudar porque soy bastante novato en esto y no sé reconocer problemas, aún más cuando no me marca ningún error...

Estoy trabajando dos páginas. La primera:

Código ActionScript :

var peticion1:URLRequest = new URLRequest("1sol_scroll.swf");

var carga:Loader = new Loader();
carga.load(peticion1);
addChild(carga);

carga.x = 20; 
carga.y = 300;

sol.addEventListener(MouseEvent.CLICK, irHuertas);

function irHuertas(ev:Event):void {gotoAndPlay("huertas"); removeChild(carga);}



stop();


La segunda:

Código ActionScript :

trace("estas en huertas");

var peticion:URLRequest = new URLRequest("1huertas_scroll.swf");

var carga2:Loader = new Loader();
carga2.load(peticion2);
addChild(carga2);

carga2.x = 20; 
carga2.y = 300;

stop();


he probado de varias formas. Esta es la última idea que he tenido pero no funciona. El problema principal es que el archivo de la segunda URL no sustituye al de la primera, es decir, se ve lo mismo en ambas.

No sé si es problema de sintaxis, de la URL o del archivo que intento cargar...Si alguien supiera...

Muchas gracias!

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Nov 2009 07:31 pm
lo que pasa es que el code se ejecuta secuncialmente , en handler del click la primer accion que hace es ir al fotograma , entonces ya la cabeza lectora se fue a ese fotograma y en ese fotograma no existe carga, deberias primero hacer un removeChild y despues ir al frame, es por eso que en as3 no se recomienda trabajar con code regado por la time line.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

chrome
Citar            
MensajeEscrito el 26 Nov 2009 03:23 pm
Es muy raro. Lo he probado pero no funciona. Parece que es como si al cargar el swf en la segunda página no reconociera el archivo y caragara el de la primera. El removechild sólo parece funcionar del todo cuando en la segunda página borro la nueva petición y la nueva carga. Entonces, hace lo que tiene que hacer y quita el clip. Pero tampoco me da fallo de url...

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Nov 2009 09:06 pm
haver si los errores son del tipo url no encontrada checa que los swf esten en las carpetas correspondientes, pero bueo te pongo un ejercisio a las carreras , haver si se resuelve este pex.
Supongamos que quiero cargar un SWF A en el frame 1, y un SWF B en el frame 10, lo que hare sera crear un contenedor "Sprite" y ahi hire agregando los swfs..

Frame 1 :

Código ActionScript :

stop();
trace("Frame",currentFrame);

//creo un contenedor
var con:Sprite = new Sprite();
con.x = 50;
con.y = 10;
addChild(con);

//loader para cargar mi SWF A
var loaderA:Loader = new Loader();
//le agrego un listener para checar cuando esta completamente cargado..
loaderA.contentLoaderInfo.addEventListener(Event.COMPLETE, completeSWFA);

function completeSWFA(evtObj:Event):void
{
   trace(evtObj.type);
   
   //como ya se cargo lo agrego al contenedor 
   con.addChild(evtObj.target.content);
}

//uso el metodo load y le paso la url
loaderA.load(new URLRequest("swfA.swf"));

//este boton me llevara al fotograma 10 donde cargare el siguiente SFW
mNextSWF.addEventListener(MouseEvent.CLICK, clickNextSWF);

function clickNextSWF(evtObj:MouseEvent):void
{
   //hago una comprobacion si mi objeto no es null
   if(loaderA.content)
   {
      //true , remuevo el SFW cargado de mi contenedor
      con.removeChildAt(0);
   }
   //que se valla al frame 10
   gotoAndPlay(10);
}


Frame 10 :

Código ActionScript :

stop();
trace("Frame ",currentFrame);

//creo un segundo Loader para cargar el SWF B
var loaderB:Loader = new Loader();
loaderB.contentLoaderInfo.addEventListener(Event.COMPLETE, completeSWFB);

//creo que esto ya se comprende..
function completeSWFB(evtObj:Event):void
{
   trace(evtObj.type);
   con.addChild(evtObj.target.content);
}
loaderB.load(new URLRequest("swfB.swf"));

mPrevSWF.addEventListener(MouseEvent.CLICK, clickPrevSWF);

function clickPrevSWF(evtObj:MouseEvent):void
{
   if(loaderB)
   {
      con.removeChildAt(0);
   }
   gotoAndPlay(1);
}


espero te sirva , saludos.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox

 

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