Ciao bulga, vedo che procedi... ma come ? nessuno ti risponde ?? ...ti "costringono" a risponderti da solo eh eh ....
...qui l'esempio di caricatore di immagini ( ...si tratta del seguito della lettura del XML che ti ho postato ), alla prossima, ciao.
Code:
// ..................................................
// NAME : CaricatoreImmagini_03.fla
// Esempio di Caricatore di Immagini da un
// File XML
// ..................................................
// ..................................................
import flash.display.Loader;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.events.IOErrorEvent;
// ..................................................
// ..................................................
var URLFileXML :URLRequest;
var CaricatoreXML :URLLoader;
var GestoreXML :XML;
var Lista_FotoURL :XMLList;
var Lista_FotoTitolo :XMLList;
var URLFileIMG :URLRequest;
var CaricatoreIMG :Loader;
var CaricatoreInfo :LoaderInfo;
var ArrayIMG :Array;
var numeroImg :uint;
var idxImg :uint;
// Posizionamento iniziale delle Immagini sullo Stage
var pos_x :uint = 10;
var pos_y :uint = 10;
// ..................................................
// ..................................................
// Il File XML si presenta cosi :
//
// <catalogo>
// <foto url="cover1.jpg" titolo="In the Court of the Crimson King" />
// <foto url="cover2.jpg" titolo="Who's Next" />
// <foto url="cover3.jpg" titolo="Aqualung" />
// etc.....
// </catalogo>
// ..................................................
// ...L'oggetto URL relativo al File XML
URLFileXML = new URLRequest();
// ...Il Loader per il caricamento del File XML
CaricatoreXML = new URLLoader();
// ...Aggiunta dell'evento COMPLETE al caricatore...
CaricatoreXML.addEventListener(Event.COMPLETE, CompletatoCaricamentoXML);
// ...Ascoltatore per la gestione di eventuali errori che si possono
// verificare durante il caricamento del file
CaricatoreXML.addEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoXML);
// ..................................................
// ...L'oggetto URL relativo alle immagini da caricare
URLFileIMG = new URLRequest();
// Il Loader per il caricamento dell'immagine
CaricatoreIMG = new Loader();
// ..................................................
// ..................................................
// l'Array che conterrà i riferimenti degli oggetti
// Loader (delle Immagini) creati dinamicamente.
ArrayIMG = new Array();
// ..................................................
// ..................................................
// BEGIN
// ..................................................
// ...assegna il nome del File XML
URLFileXML.url = "albums.xml";
// ...carica i File XML contenente i path delle
// immagini ed i relativi titoli
CaricatoreXML.load(URLFileXML);
// ..................................................
// END
// ..................................................
// ..................................................
// FUNCTION : CaricamentoCompletatoXML()
// Il File XML e' stato caricato
// ..................................................
function CompletatoCaricamentoXML(evento:Event):void
{
// ...il caricamento del File XML e' completato!!!
// ...crea un nuovo oggetto XML
GestoreXML = new XML(CaricatoreXML.data);
// ...le liste XML per estrarre gli attributi
Lista_FotoURL = GestoreXML.foto.@url;
Lista_FotoTitolo = GestoreXML.foto.@titolo;
// ...numero dei TAGS <foto> url / Titolo
// quante immagini ci sono nel catalogo xml
numeroImg = Lista_FotoURL.length();
// ...caricamento delle Immagini :
idxImg = 0;
// ...assegna l'url della prima immagine
URLFileIMG.url = Lista_FotoURL[idxImg];
// ...crea un Loader per caricare l'immagine
CaricatoreIMG = new Loader();
// ...il contentLoaderInfo a cui associare gli ascoltatori
CaricatoreInfo = LoaderInfo(CaricatoreIMG.contentLoaderInfo);
// ...aggiungi asacoltatori :
// CaricatoreInfo.addEventListener(ProgressEvent.PROGRESS, ProgressioneCaricamentoIMG);
// ( l'Evento PROGRESS, se si desidera gestire la progressione del carcamento )
CaricatoreInfo.addEventListener(Event.COMPLETE, CompletatoCaricamentoIMG);
CaricatoreInfo.addEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoIMG);
// ...carica la prima Immagine.
CaricatoreIMG.load(URLFileIMG);
}
// ..................................................
// ..................................................
// FUNCTION : ErroreCaricamentoXML()
// Gestione degli eventuali errori di
// caricamento (di un qualsiasi File)
// ..................................................
function ErroreCaricamentoXML(evento:IOErrorEvent):void
{
// ...si e' verificato un errore durante il
// cariamento del file XML
trace("Errore di caricamento : " + evento.type);
trace("durante la lettura del File : " + URLFileXML.url);
trace("ABEND !");
}
// ..................................................
// ..................................................
// FUNCTION : CompletatoCaricamentoIMG()
// Il File IMG e' stato caricato
// ..................................................
function CompletatoCaricamentoIMG(evento:Event):void
{
// ...l'i-esima IMMAGINE e' stata caricata!
// ...crea una var di tipo loader (non l'oggetto loader)
// ed associagli il reference del loader (oggetto)
// dell'immagine caricata
var imgCaricata:Loader = Loader(evento.target.loader);
// ...eventuali ridimensionamenti dell'Immagine
imgCaricata.width = 100;
imgCaricata.height = 100;
// imgCaricata.x = pos_x;
// imgCaricata.y = pos_y;
// **************************************************
// ...se si vuole creare un movie clip che conterra'
// l'immagine
var mc:MovieClip = new MovieClip();
mc.buttonMode = true;
mc.mouseChildren = false;
// ...es. eventuale click sull'immagine
mc.addEventListener(MouseEvent.CLICK, clickImmagine )
// posizionamento del Movie Clip sullo Stage
mc.x = pos_x;
mc.y = pos_y;
// **************************************************
// ...aggiungi il Titolo sotto l'immagine o dove vuoi
var KTitolo:TextField = new TextField();
KTitolo.text = Lista_FotoTitolo[idxImg];
KTitolo.x = pos_x;
KTitolo.y = pos_y + CaricatoreIMG.height + 5;
// ...aggiungo 2 proprieta' al mc
// il progressivo ed il componente TextField
// cosi' quando ci sara' il click sull'i-esima
// immagine sapro' chi e' :)
mc.progressivo = idxImg;
mc.cargo = KTitolo;
// ...salva nell'Array il referenze dell'Immagine o del
// movieClip
// ArrayIMG[idxImg] = imgCaricata;
ArrayIMG[idxImg] = mc;
// ...aggiungi l'immagine nel movieclip
mc.addChild(imgCaricata);
// ..aggiungi allo Stage
addChild(mc);
// ...aggiungi eventuale Titolo/descrizione, etc...
addChild(KTitolo);
// ...
// ...controlla se le immagini da caricare sono finite
if (idxImg < (numeroImg-1))
{
// ...non ancora, procedo con la prossima...
CaricaProssimaImmagine();
}
else
{
// .........................................................
// >>> IN QUESTO PUNTO TUTTE LE IMMAGINI SONO STATE CARICATE
// .........................................................
CaricatoreInfo.removeEventListener(Event.COMPLETE, CompletatoCaricamentoIMG);
CaricatoreInfo.removeEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoIMG);
}
}
// ..................................................
// ..................................................
// FUNCTION : ErroreCaricamentoIMG()
// Gestione degli eventuali errori di
// caricamento di un file IMG
// ..................................................
function ErroreCaricamentoIMG(evento:IOErrorEvent):void
{
// trace("Errore di caricamento : " + evento.type);
// trace("durante la lettura del File : " + URLFileIMG.url);
// trace("ABEND!");
// ...procedi comunque :
// ...controlla se le immagini da caricare sono finite
if (idxImg < (numeroImg - 1))
{
// ...creo un nuovo Loader per la prossima immagine
CaricatoreIMG = new Loader();
// ...ed un nuovo LoaderInfo
CaricatoreInfo = LoaderInfo(CaricatoreIMG.contentLoaderInfo);
// ...gli ascoltatori vanno aggiunti di nuovo :
// si tratta di un nuovo oggetto
// CaricatoreInfo.addEventListener(ProgressEvent.PROGRESS, ProgressioneCaricamentoIMG);
CaricatoreInfo.addEventListener(Event.COMPLETE, CompletatoCaricamentoIMG);
CaricatoreInfo.addEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoIMG);
// ...nel caso si voglia lasciare comunque dello spazio relativo
// all'immagine non caricata ( altrimenti commetare )
// ( la width dello spazio e' quella dell'immagine precedente )
pos_x = pos_x + ArrayIMG[idxImg-1].width + 5;
// ...immagine successiva
idxImg++;
// ...assegna url
URLFileIMG.url = Lista_FotoURL[idxImg];
// ...carica!
CaricatoreIMG.load(URLFileIMG);
}
else
{
// .........................................................
// >>> IN QUESTO PUNTO TUTTE LE IMMAGINI SONO STATE CARICATE
// .........................................................
CaricatoreInfo.removeEventListener(Event.COMPLETE, CompletatoCaricamentoIMG);
CaricatoreInfo.removeEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoIMG);
}
}
// ..................................................
// ..................................................
// FUNCTION : CaricaProssimaImmagine()
// carica prossima Immagine in Array
// ..................................................
function CaricaProssimaImmagine()
{
// ...creo un nuovo Loader per la prossima immagine
CaricatoreIMG = new Loader();
// ...ed un nuovo LoaderInfo
CaricatoreInfo = LoaderInfo(CaricatoreIMG.contentLoaderInfo);
// ...gli ascoltatori vanno aggiunti di nuovo :
// si tratta di un nuovo oggetto
// CaricatoreInfo.addEventListener(ProgressEvent.PROGRESS, ProgressioneCaricamentoIMG);
CaricatoreInfo.addEventListener(Event.COMPLETE, CompletatoCaricamentoIMG);
CaricatoreInfo.addEventListener(IOErrorEvent.IO_ERROR, ErroreCaricamentoIMG);
// ...immagine successiva
idxImg++;
// ...assegno url
URLFileIMG.url = Lista_FotoURL[idxImg];
// ...calcola la posizione successiva
pos_x = pos_x + ArrayIMG[idxImg-1].width + 5;
// ...carica!
CaricatoreIMG.load(URLFileIMG);
}
// ..................................................
// FUNCTION : clickImmagine()
// Gestione click sull'immagine
// ..................................................
function clickImmagine(evento:MouseEvent):void
{
// ...su quale immagine hai clikkato ?
trace("click sull'immagine : " + evento.target.progressivo);
trace("click sull'immagine : " + evento.target.cargo.text);
}
// ..................................................
// ...end of my hard JOB :)
// ...share your knowledge!!!!