ho provato questo preload: [PILLOLA] Introduzione ed utilizzo di MovieClipLoader [MX 2004] e devo dire funziona, ma io ho una domanda da porvi:
ho un filmato fatto da due scene una preload e l'altra chiamata principale. Metto sul 1° frame della scena preload il dodice qui sotto riportato, una volta caricato mi serve far partire al frame 25 della scena successiva il caricato... come fare?
stop();
//ora mi creo un paio di variabili stringa per definire eventuale folder e nome file da caricare ...
var path:String = new String("");
// specifico la folder ...
var swfName:String = new String(path+"2.swf");
// ... e il nome del mio swf
// mi creo un campo di testo dinamico da utilizzare
// come debugger per inserire l'accaduto durante, prima e dopo ...
// creo un campo di testo dinamico
// con nome istanza debug_txt
this.createTextField("debug_txt", 1, 0, 0, 1, 1);
this["debug_txt"].autoSize = true;
// lo rendo autosizzante
this["debug_txt"].html = true;
// gli abilito l' html ...
// ... e creo lo stile ...
var myFormat:TextFormat = new TextFormat();
// istanzio la mia variabile di tipo TextFormat
myFormat.font = "Franklin Gothic Demi Cond";
// assegno l 'attributo font
myFormat.size = 12;
// l'attributo size
myFormat.color = 0xFFFFFF;
// l' attributo color
// ora mi creo una variabile che popolero' di informazioni durante le mie prove ...
var globalStatus:String = new String();
/**********************************
* FUNZIONI UTILI
* [ dichiarazioni funzioni ]
**********************************/
// adesso voglio creare una funzione che una volta richiamata
// mi popola di testo passato il campo dinamico creato in precedenza
function accaduto(campo:TextField, testo:String, formattazione:TextFormat) {
campo.htmlText = testo;
campo.setTextFormat(formattazione);
}
/********************************/
/**********************************
* CREAZIONE DATI E CARICAMENTO
* [ gestione layout ed eventi ]
**********************************/
var myLoadedMovie:MovieClipLoader = new MovieClipLoader(); // creo il MovieClip loader
var MovieListner:Object = new Object(); // creo l'oggetto listner per myLoadedMovie
// onLoadStart
MovieListner.onLoadStart = function (target_mc) {
// comincio a popolare la variabile con gli avvenimenti ...
globalStatus = "Inizio caricamento di " + target_mc + "\n";
// e ci metto dentro anche il "misterioso" getProgress()
var loadProgress:Object = new Object(myLoadedMovie.getProgress(target_mc));
globalStatus += "Bytes caricati all' avvio: " + loadProgress.bytesLoaded + "\n";
globalStatus += "Bytes totali all' avvio: " + loadProgress.bytesTotal + "\n";
}
// onLoadProgress
MovieListner.onLoadProgress = function (target_mc, loadedBytes, totalBytes) {
// mostro in fase di caricamento il mio preload
// senza Math.round, vars car e tot e le solite cosa insomma ...
var caricamento = "Totale bytes caricati: " + loadedBytes + "\n";
caricamento += "Totale bytes da caricare: " + totalBytes + "\n \n";
// facile no ?
// pero' voglio testare anche le differenze
//con progress ( notabili solo con files compressi ... )
var loadProgress:Object = new Object(myLoadedMovie.getProgress(target_mc));
caricamento += "Totale bytes PROGRESS da caricare: " + loadProgress.bytesLoaded + "\n";
caricamento += "Totale bytes PROGRESS totali: " + loadProgress.bytesTotal + "\n";
// e leggere quanto appena richiesto ...
accaduto(debug_txt, caricamento, myFormat);
}
// onLoadComplete
MovieListner.onLoadComplete = function (target_mc) {
// posso scrivere 100% grosso quanto una casa ma mi conviene aspettare a fare settaggi ...
globalStatus += "Il file " + target_mc + " e' pronto per essere inizializzato.\n";
nextScene();
play(); }
// onLoadInit
MovieListner.onLoadInit = function (target_mc) {
// perche' e' in questo momento che andro' a farli ...
target_mc._alpha = 50;
target_mc._x = Stage.width - target_mc._width;
globalStatus += "Inizializzazione " + target_mc + " completata.\n";
// fino a togliere la scritta dey bytes e metterci tute le info raccolte fin'ora
accaduto(debug_txt, globalStatus, myFormat);
}
// onLoadError
MovieListner.onLoadError = function (target_mc, errorCode) {
// oppure rinunciare a caricare, spiegando il motivo ..
globalStatus += "Impossibile caricare questo file: " + target_mc + "\n";
globalStatus += "[ " + errorCode + " ]\n";
accaduto(debug_txt, globalStatus, myFormat);
// e svuotando quanto resta dell' ormai inutile MovieClip di target
myLoadedMovie.unloadClip(target_mc);
}
// dopo aver dichiarato i vari eventi del listner, associo quest' ultimo al MovieClipLoader ...
myLoadedMovie.addListener(MovieListner);
// ... per poi creare qui un MovieClip
// con nome istanza myMove e depth 10 che andro' ad utilizzare come target
this.createEmptyMovieClip("mymove", 10);
// e passare le variabili create all' inizio per caricare il mio file ...
myLoadedMovie.loadClip(path+swfName, this["mymove"]); // .. con this["myMove"] per target
su onLoadComplete poi (forse sbaglio) mando alla scena successiva con next scene(); e successivamente play();
Il preload mi carica un swf esterno contenente audio, solo che facendo il preload l'audio mi parte al primo frame della scena successiva, io ho la necessità di farlo partire al frame 25, ho provato a mettere stopAllSound al primo frame della schena principale, ma niente da fare...
AIUTO!!!

Rispondi quotando
