Lavorare con dati esterni in Actionscript 3.0. Caricare dati XML
(scritto da , il giorno 04-04-2008 01:03)
Come abbiamo già visto in un precedente articolo, è necessario talvolta gestire dati esterni. La stragrande maggioranza delle volte questo avviene gestendo file di variabili o, come vedremo in questo tutorial, tramite XML. Data l'importanza che l'XML sta acquisendo nel mondo del Web (pensiamo ai feed RSS, ad Ajax, ecc.. ), oggi la classe XML di Actionscript 3 è stata riscritta appositamente.
Come abbiamo già visto in un precedente articolo, è necessario talvolta gestire dati esterni. La stragrande maggioranza delle volte questo avviene gestendo file di variabili o, come vedremo in questo tutorial, tramite XML. Data l'importanza che l'XML sta acquisendo nel mondo del Web (pensiamo ai feed RSS, ad Ajax, ecc.. ), oggi la classe XML di Actionscript 3 è stata riscritta appositamente.
In questo capitolo analizzeremo la classe XML di Actionscript 3.0 e come sia possibile caricare dati XML all'interno di applicativi Flash/Flex.
Come esempio di file XML utilizzeremo i Feed RSS di FlexGALA. Come saprete sicuramente, i feed rss, altro non sono che file XML formattati in una determinata maniera.
Prima di proseguire, come approfondimento, vi consigliamo un nostro articolo al riguardo.
Come dicevamo, useremo quindi il file dei feed RSS di FlexGALA: http://www.augitaly.com/flexgala/rss.php?t=mixed
Cominciamo quindi col creare la nostra classe:
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest;
Abbiamo quindi importato tutte le classi necessarie.
public class ParseXML extends Sprite { public var xmlData:XML=new XML(); public var xmlPath:URLRequest=new URLRequest("http://www.augitaly.com/flexgala/rss.php?t=mixed"); public var xmlLoad:URLLoader=new URLLoader(); public var xmlInfo:Array=new Array();
Ovviamente abbiamo qui creato tutte le variabili necessarie al nostro caso, più un array (xmlInfo). Questo perchè una volta caricati i dati, risulta più comodo gestire un Array (talvotla anche un ArrayCollection) per gestire questi dati.
public function ParseXML() { xmlLoad.load(xmlPath); xmlLoad.addEventListener(Event.COMPLETE, parseMyXML); }
Nel costruttore abbiamo impostato il caricamento all'interno della variabile xmlLoad i dati contenuti nell'istanza della classe URLLoader (xmlLoad), tramite il metodo "load".
Quindi abbiamo impostato sull'evento "Complete" l'effettivo smistamento delle informazioni contenute nell'XML tramite la funzione "parseMyXML".
Vediamo il contenuto di tale funzione:
public function parseMyXML(e:Event):void { xmlData=XML(xmlLoad.data); for each(var prop:XML in xmlData.channel.item) { xmlInfo.push({titoloArticolo:prop.title}); } for(var i:String in xmlInfo) { trace(xmlInfo[i].titoloArticolo); } } } }
Come potete leggere vegono estratti dall'istanza della classe "xmlData", tutte le informazioni inerenti ai titoli degli articoli (xmlData.channel.item).
Se proviamo il nostro lavoro, se lavoriamo in Flex cclicchiamo sulla voce di menu "Run", quindi "Run nomeapplicazione". Altrimenti in FLash, CTRL+INVIO o Cmd+Enter se siamo in ambiente Mac.
Come potrete notare, nel pannello output di Flash o Console di Flex appaiono gli articolo uno sotto l'altro, come in foto sottostante:

Qui di seguito riproponiamo il codice completo:
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; public class ParseXML extends Sprite { public var xmlData:XML=new XML(); public var xmlPath:URLRequest=new URLRequest("http://www.augitaly.com/flexgala/rss.php?t=mixed"); public var xmlLoad:URLLoader=new URLLoader(); public var xmlInfo:Array=new Array(); public function ParseXML() { xmlLoad.load(xmlPath); xmlLoad.addEventListener(Event.COMPLETE, parseMyXML); } public function parseMyXML(e:Event):void { xmlData=XML(xmlLoad.data); for each(var prop:XML in xmlData.channel.item) { xmlInfo.push({titoloArticolo:prop.title}); } for(var i:String in xmlInfo) { trace(xmlInfo[i].titoloArticolo); } } } }
Commenti (0)
Registrati ed esegui il login se vuoi lasciare un commento
Scarica o stampa l'articolo "Lavorare con dati esterni in Actionscript 3.0. Caricare dati XML" in formato PDF
Torna indietro









