Non è malvagia come idea, anche se avrai un po' di risorse occupate per via del caricamento multiplo, volendo potresti fare tutto con un solo Loader, ma ponendo di seguire la strada che hai descritto, dovresti muoverti un tantino meglio con i caricatori, usa un array anche per quelli, o ancora meglio, per far sì che funzioni tutto il meccanismo, inserisci ogni loader dentro un movieclip, in modo che in questo stesso movieclip potrai aggiungere delle variabili da sfruttare poi nelle varie funzioni della classe.
Io la classe la vedrei così:
Codice PHP:
package myClasses {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
public class Principale extends MovieClip {
private var array_pulsanti:Array;
private var array_sezioni:Array;
private var array_caricatori:Array;
public function Principale () {
array_pulsanti = [home_btn, section1_btn, section2_btn, section3_btn];
array_sezioni = ["sito_sezioni/home.swf", "sito_sezioni/section1.swf", "sito_sezioni/section2.swf", "sito_sezioni/section3.swf"];
array_caricatori = [];
array_sezioni.forEach(__foreach__);
}
private function __foreach__ (e:*, i:uint, a:Array) {
array_pulsanti[i].index = i;
array_caricatori.push (addChild(new MovieClip()) as MovieClip);
array_caricatori[i].caricatore = array_caricatori[i].addChild(new Loader());
array_caricatori[i].pulsante = array_pulsanti[i];
array_caricatori[i].caricatore.load (new URLRequest(e));
array_caricatori[i].caricatore.contentLoaderInfo.addEventListener(Event.INIT, __init__);
}
private function __init__ (e:Event) {
var c:MovieClip = MovieClip(e.target.loader.parent);
c.pulsante.addEventListener(MouseEvent.CLICK, __click__);
}
private function __click__ (e:MouseEvent) {
var ext:MovieClip = array_caricatori[e.target.index].caricatore.content;
trace(ext);
}
}
}
Salvo che non mi sia scordato qualche import, dovrebbe funzionare già così.
Se mi confermi il funzionamento, passiamo poi ad analizzarla.
[edit] C'era un errore nei nomi che ho corretto, spero che non ce ne siano altri simili.