ciao franco il mio consiglio è quello di non usare tanti loader quanti sono i tuoi filmati ma di usarne solo uno e prendere il suo contenuto in questo modo risparmi molte risorse che nel tuo caso sono superflue.
inoltre ti consiglio di inserire i tuoi swf esterni in un clip contenitore e non direttamente sullo stage.
ecco un modo più agevole e con spreco di meno risorse per fare la stessa cosa che fai tu e in questo modo eviteresti anche di fare tanti controlli if per verificare quanti figli sono presenti nel momento che fai il loader sulla displaylist.
ecco una soluzione che ti consiglio:
Codice PHP:
//dichiari un array che conterrà tutti i nomi dei tuoi file swf
private var sezioni_array:Array=new Array("home.swf","filosofia.swf","pippo.swf","pluto.swf","paperino.swf");
//dichiari un movieclip contenitore io lo istanzio qui direttamente ma ti suggerisco di istanziarlo
//nel costuttore
private var vuoto_mc:MovieClip=new MovieClip();
//dichiaro una variabile di tipo int che mi servirà per il carico del relativo swf
// aggiungi gli ascoltatori ai tuoi bottoni
bt_home.addEventListener(MouseEvent.CLICK, settaId1);
bt_filosofia.addEventListener(MouseEvent.CLICK, settaId2);
bt_pippo.addEventListener(MouseEvent.CLICK, settaId3);
bt_pluto.addEventListener(MouseEvent.CLICK, settaId4);
bt_paperinoaddEventListener(MouseEvent.CLICK, settaId5);
//ti crei le funzioni che setta un id in base al bottone premuto questa parte potrebbe essere
//ulteriormente semplificata solo che non conosco il tuo livello di actionscript quindi cerco di
//mantenermi nel più semplice possibile
private function settaId1(evento:MouseEvent):void{
id=0;
caricaSWF(id);
}
private function settaId2(evento:MouseEvent):void{
id=1;
caricaSWF(id);
}
private function settaId3(evento:MouseEvent):void{
id=2;
caricaSWF(id);
}
private function settaId4(evento:MouseEvent):void{
id=3;
caricaSWF(id);
}
private function settaId5(evento:MouseEvent):void{
id=4;
caricaSWF(id);
}
//adesso dichiari la funzione per il caricamento
private function caricaSWF(id:int):void
{
//qui controlli se il tuo contenitore ha figli
if(vuoto_mc.numChildren>0)
{
var swf:*=vuoto_mc.getChildAt(0);
//se ha figli lo rimuovi
removeChild(swf);
}
var richiesta:URLRequest=new URLRequest(sezioni_array[id]);
var caricatore:Loader=new Loader();
caricatore.contentLoaderInfo.addEventListener(Event.COMPLETE,SWFcaricato);
caricatore.load(richiesta);
}
private function SWFcaricato(evento:Event):void
{
var swf:*=evento.target.loader.content;
vuoto_mc.addChild(swf);
}
ciao