codice:/********************************** * FASI COMUNI * [ dichiarazioni vars e costanti ] **********************************/ // il file mySWF.swf si trovera' nella stessa cartella di questo file // mi trovo nel primo keyframe di questo filmato, apro il pannello delle action e comincio a scrivere ... stop(); // mi assicuro che la timeline sia ferma in questo punto dello stage attuale // [ superfluo, abitudine ] // 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+"mySWF.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 = "Verdana"; // assegno l 'attributo font myFormat.size = 10; // l'attributo size myFormat.color = 0x000000; // l' attributo color // ora mi creo una variabile che popolero' di informazioni durante le mie prove ... var globalStatus:String = new String(); // in MX 2004 preferisco abituarmi ad instanziare in questo modo // utile quando si ha a che fare con le classi in AS2.0 /********************************/ /********************************** * 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"; } // 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