Comunidad de diseño web y desarrollo en internet online

Navegando com AS3

Citar            
MensajeEscrito el 22 Abr 2010 02:22 am
Tengo un archivo llamado preloader que carga un archivo externo index.swf de la siguiente forma

Código ActionScript :

var CONTAINER:Sprite = new Sprite();
CONTAINER.x = 0,
CONTAINER.y = 0;
addChild(CONTAINER);

var myLoader:Loader = new Loader();
myLoader.load(new URLRequest("index.swf"));

CONTAINER.addChild(myLoader); 


Mi index.swf tiene un botón btnAzul que debe cargar un arquivo externo azul.swf. Mi intención es cargar este último en el CONTAINER del preloader para que el index.swf sea substituído por azul.swf. Aquí el código:

Código ActionScript :

// Button btnAzul;

var miLoader:Loader = new Loader();
parent.CONTAINER.addChild(miLoader)

btnAzul.addEventListener(MouseEvent.CLICK, btnAzul_CLICK)

function btnAzul_CLICK (e:MouseEvent):void
{
   miLoader.load( new URLRequest( "azul.swf" ) );
}


Mi problema es que el archivo no es cargado y no estoy recibiendo ningún error. Alguien sabe que está pasando?

Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Abr 2010 04:18 am
mm no veo el por que usar otro objeto loader en index , ademas de que no sea agrega el objeto Loader si no la propiedad content del su loaderInfo object mm intenta de esta manera :

preloader:

Código ActionScript :

var container:Sprite = new Sprite();
addChild(container);

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

function completeHandler(e:Event):void
{
   var tmpLoaderInfo:LoaderInfo = e.target as LoaderInfo;
   var tmpContent:MovieClip = tmpLoaderInfo.content as MovieClip;
   
   while(container.numChildren) {
      container.removeChildAt(0)
   }
   
   container.addChild(tmpContent);
}
loader.load(new URLRequest("index.swf"));


index

Código ActionScript :

this.addEventListener(Event.ADDED_TO_STAGE, addedHandler);

var main:MovieClip;

function addedHandler(e:Event):void
{
   main = MovieClip(parent.parent);
   btnAzul.addEventListener(MouseEvent.CLICK, clickHandler);
}

function clickHandler(e:MouseEvent):void
{
   //main hace referencia al timeline del archivo preloader
   //por lo tanto accedo al objeto loader que este tiene
   main.loader.load(new URLRequest("azul.swf"));
}


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 22 Abr 2010 03:40 pm
Jonathan, te felicito. Muy buena tu explicación y enrriqueciste mis conocimientos porque desconocía el ADDED_TO_STAGE que en mi interpetación sería algo como un COMPLETE pero para elementos adicionados a la DisplayList.

Digamos ahora que el azul.swf tiene un botón llamado btnRojo que va a cargar un rojo.swf. Simplemente repetí el código correspondiente al azul, quedó de esta manera

Código ActionScript :

var main:MovieClip; 

this.addEventListener(Event.ADDED_TO_STAGE, addedHandler); 
 
function addedHandler(e:Event):void 
{ 
   main = MovieClip(parent.parent); 
   btnRojo.addEventListener(MouseEvent.CLICK, clickHandlerRojo); 
} 
 
function clickHandlerRojo(e:MouseEvent):void 
{ 
   main.carregador.load(new URLRequest("rojo.swf")); 
} 


Está corecto o habría alguna outra forma para evitar la repetición del código?

Muchas pero muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

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