devo realizzare una head in flash di un sito, questa head deve caricare degli swf esterni consecutivamente e casualmente; cioè non appena finisce l'esecuzione di un swf ne deve far caricare un altro dei miei 20 scegliendolo in modo casuale, se è possibile una piccola transazione tra un immagine all'altra
ho provato questo codice ma mi cambia l'immagine ad ogni aggiornamento della pagina.
codice://impostiamo la larghezza e l'altezza delle immagini var altezza:Number = 450; var larghezza:Number = 600; //definiamo URLLoader per caricare il file XML e il Loader per le immagini. //NB: URLLoader è "eseguito" quando il costruttore viene chiamato var xmlLoad:URLLoader = new URLLoader( new URLRequest("ListaImagini.xml") ); var imgLoad:Loader = new Loader(); //e alla fine diciamo a Flash di eseguire la funzione "caricaLista" quando URLLoader ha completato il suo caricamento del file xml, xmlLoad.addEventListener(Event.COMPLETE, caricaLista); /* Nella funzione "caricaLista" otteniamo i dati dall'oggetto URLLoader e avendo nel file xml diversi tag "contenuto" comunichiamo alla var "stImage" di caricare una random. Dato che "imgLoad" è un oggetto Loader dobbiamo chiamare il metodo load per caricare l'immagine. L'ultima riga rimuove il listener di evento associato all'evento "caricaLista". */ function caricaLista(evt:Event):void { var xmlData:XML = XML(xmlLoad.data); var numImmagini:Number = xmlData.contenuto.length(); var stImage:String = xmlData.contenuto[Math.floor(numImmagini*Math.random())].toString(); imgLoad.contentLoaderInfo.addEventListener(Event.COMPLETE, caricaImmagini); imgLoad.load( new URLRequest(stImage) ); xmlLoad.removeEventListener(Event.COMPLETE, caricaLista); } /* La funzione "caricaImmagini" inserisce il contenuto del "imgLoad" come un oggetto Bitmap in modo che possiamo scalarlo prima di aggiungerlo nello stage. Si noti che usiamo scaleX e scaleY per ridimensionare l'immagine dalle variabili altezza e larghezza, indipendentemente dalle sue proporzioni originali. Alla fine aggancio un listener che verifica il fine caricamente è richiama una funzione. */ function caricaImmagini(evt:Event):void { var thisBmp:Bitmap = Bitmap(imgLoad.content); thisBmp.x = 0; thisBmp.y = 0; var thisWidth:Number = thisBmp.width; var thisHeight:Number = thisBmp.height; thisBmp.scaleX = larghezza/thisWidth; thisBmp.scaleY = altezza/thisHeight; addChild(thisBmp); imgLoad.contentLoaderInfo.removeEventListener(Event.COMPLETE, caricaImmagini); }

Rispondi quotando
