Ciao
Come hai giustamente osservato, in un filmato AS2 non è possibile importare un filmato AS3 mentre in alcuni casi potrebbe funzionare il contrario ovvero: contenitore in AS3 e contenuto in AS2.
Per quanto riguarda il preload, sopratutto per il filmato .swf con il codice di caricamento del video da youtube non è necessario perchè di fatto stai caricando solo una chiamata a un URL.
Anche se ci fosse un animazione di preload, nemmeno si vedrebbe in quanto il filmato che incorpora il video da youtube pesa pochissimo (nella prova che ho fatto: 2 kb).
Tutto sommato, se non hai molto codice nel filmato principale ti consiglierei di convertirlo AS3 e vedere se funzionano i filmati AS2 importati.
Ti riporto un esempio di codice AS3 che in un MC contenitore carica e scarica filmati .swf in relazione all'effettivo pulsante premuto del menu.
Considera che il menù è un MovieClip posizionato sullo stage che a sua volta contiene 5 MC istanziati con il loro nome istanza all'interno del MC menu.
I filmati sono in una cartella di nome "sezioni" presente nella stessa directory del filmato principale:
Codice PHP:
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
var listaPulsanti:Array;
var listaSezioni:Array;
var caricatore:Loader = new Loader ;
var richiesta:URLRequest;
var contenitore:MovieClip = new MovieClip ;
inizializza();
function inizializza():void
{
contenitore.y = 90;
addChild(contenitore);
caricatore.load(new URLRequest("sezioni/sezione1.swf"));
contenitore.addChild(caricatore);
listaPulsanti = new Array(menu.pulsante1,menu.pulsante2,menu.pulsante3,menu.pulsante4,menu.pulsante5);
listaSezioni = new Array("sezioni/sezione1.swf","sezioni/sezione2.swf","sezioni/sezione3.swf","sezioni/sezione4.swf","sezioni/sezione5.swf");
inizializzaPulsanti();
}
function inizializzaPulsanti():void
{
for (var i:uint = 0; i < listaPulsanti.length; i ++)
{
listaPulsanti[i].identificaSezione = i;
listaPulsanti[i].buttonMode = true;
listaPulsanti[i].addEventListener(MouseEvent.MOUSE_DOWN, caricaSezione);
}
}
function caricaSezione(evento:MouseEvent):void
{
if (caricatore != null)
{
caricatore.unload();
}
richiesta = new URLRequest(listaSezioni[evento.target.identificaSezione]);
caricatore.load(richiesta);
caricatore.contentLoaderInfo.addEventListener(Event.COMPLETE, caricamentoCompletato);
}
function caricamentoCompletato(evento:Event):void
{
var swf:MovieClip = evento.target.loader.content as MovieClip;
if (contenitore.numChildren > 0)
{
contenitore.removeChildAt(0);
contenitore.addChild(swf);
}
}
Se qualcosa non ti è chiaro o se ti serve un'animazione di preload da visualizzare durante il caricamento in corso, fammi sapere.
ciao