Codice PHP:
import flash.display.Loader;
import flash.display.Bitmap;
import flash.display.BitmapData;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
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;
var format:TextFormat = new TextFormat();
format.color=0xFa8100;
format.font="Century Gothic";
format.size=11;
format.bold = true;
//format.bold = true;
format.kerning=false;
// Posizionamento iniziale delle Immagini sullo Stage
var pos_x:uint=10;
var pos_y:uint=10;
// ...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="home.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=40;
imgCaricata.height=40;
// 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;
mc.alpha=0.6;
// ...es. eventuale click sull'immagine
// 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.autoSize=TextFieldAutoSize.LEFT;
KTitolo.antiAliasType=AntiAliasType.ADVANCED;
KTitolo.defaultTextFormat=format;
KTitolo.selectable=false;
KTitolo.mouseEnabled=false;
KTitolo.text=Lista_FotoTitolo[idxImg];
KTitolo.x=pos_x+CaricatoreIMG.width+10;
KTitolo.y=mc.y+15;
KTitolo.alpha=0;
// ...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
mc.name = "mc"+idxImg;
this.addChild(mc);
mc.addEventListener(MouseEvent.CLICK, clickImmagine );
mc.addEventListener(MouseEvent.MOUSE_OVER, hover );
mc.addEventListener(MouseEvent.MOUSE_OUT, out );
// ...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_y=pos_y+ArrayIMG[idxImg-1].height+10;
// ...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_y=pos_y+ArrayIMG[idxImg-1].height+10;
// ...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);
trace(evento.target.name);
}
function hover(e:MouseEvent):void {
var sca1:Tween=new Tween(e.target,"scaleY",Strong.easeOut,1,1.2,1,true);
var sca2:Tween=new Tween(e.target,"scaleX",Strong.easeOut,1,1.2,1,true);
var alph:Tween=new Tween(e.target,"alpha",Strong.easeOut,0.6,1,1,true);
var alph1:Tween=new Tween(e.target.cargo,"alpha",Strong.easeOut,0,1,0.6,true);
}
function out(e:MouseEvent):void {
var sca3:Tween=new Tween(e.target,"scaleY",Strong.easeOut,e.target.scaleY,1,1,true);
var sca4:Tween=new Tween(e.target,"scaleX",Strong.easeOut,e.target.scaleX,1,1,true);
var alph2:Tween=new Tween(e.target,"alpha",Strong.easeOut,e.target.alpha,0.6,1,true);
var alph3:Tween=new Tween(e.target.cargo,"alpha",Strong.easeOut,e.target.cargo.alpha,0,0.6,true);
}
// ..................................................
// ...end of my hard JOB :)
// ...share your knowledge!!!!
Come ho detto, il file singolarmente funziona benissimo, appena però lo importo in un altro swf solo il primo moviclip inserito risulta funzionanate