Lavorare con dati esterni in Actionscript 3.0. Caricare dati XML

(scritto da , il giorno 04-04-2008 01:03)
add to my flexgala

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:

<codice Flex 2/Actionscript 3>

  1. package {
  2. import flash.display.Sprite;
  3. import flash.events.Event;
  4. import flash.net.URLLoader;
  5. import flash.net.URLRequest;


Abbiamo quindi importato tutte le classi necessarie.

<codice Flex 2/Actionscript 3>

  1. public class ParseXML extends Sprite
  2. {
  3. public var xmlData:XML=new XML();
  4. public var xmlPath:URLRequest=new URLRequest("http://www.augitaly.com/flexgala/rss.php?t=mixed");
  5. public var xmlLoad:URLLoader=new URLLoader();
  6. 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.

<codice Flex 2/Actionscript 3>

  1. public function ParseXML()
  2. {
  3. xmlLoad.load(xmlPath);
  4. xmlLoad.addEventListener(Event.COMPLETE, parseMyXML);
  5.  
  6. }

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:

<codice Flex 2/Actionscript 3>

  1. public function parseMyXML(e:Event):void
  2. {
  3. xmlData=XML(xmlLoad.data);
  4. for each(var prop:XML in xmlData.channel.item)
  5. {
  6. xmlInfo.push({titoloArticolo:prop.title});
  7. }
  8. for(var i:String in xmlInfo)
  9. {
  10. trace(xmlInfo[i].titoloArticolo);
  11. }
  12. }
  13. }
  14. }


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:
<codice Flex 2/Actionscript 3>

  1. package {
  2. import flash.display.Sprite;
  3. import flash.events.Event;
  4. import flash.net.URLLoader;
  5. import flash.net.URLRequest;
  6.  
  7. public class ParseXML extends Sprite
  8. {
  9. public var xmlData:XML=new XML();
  10. public var xmlPath:URLRequest=new URLRequest("http://www.augitaly.com/flexgala/rss.php?t=mixed");
  11. public var xmlLoad:URLLoader=new URLLoader();
  12. public var xmlInfo:Array=new Array();
  13.  
  14. public function ParseXML()
  15. {
  16. xmlLoad.load(xmlPath);
  17. xmlLoad.addEventListener(Event.COMPLETE, parseMyXML);
  18.  
  19. }
  20.  
  21. public function parseMyXML(e:Event):void
  22. {
  23. xmlData=XML(xmlLoad.data);
  24. for each(var prop:XML in xmlData.channel.item)
  25. {
  26. xmlInfo.push({titoloArticolo:prop.title});
  27. }
  28. for(var i:String in xmlInfo)
  29. {
  30. trace(xmlInfo[i].titoloArticolo);
  31. }
  32. }
  33. }
  34. }



Commenti (0)

Registrati ed esegui il login se vuoi lasciare un commento

Visualizza l'articolo in formato pdfScarica o stampa l'articolo "Lavorare con dati esterni in Actionscript 3.0. Caricare dati XML" in formato PDF

Torna indietro
Per collaborazioni, proposte, segnalazioni scrivete a:

Javaday 2010




  •  
    Articoli
     
  •  
    Blogs
     
  •  
    Eventi
     
  •  
    Layout
     
  •  
    in più
     
 

Utilizzare i Charts components in Flex 3 - I° parte (07-01-2010)
Una delle potenzialità messe a disposizione nel Flex Builder, nelle Flex SDK e nel futuro Flash Builder, è la possibilità di utilizzare i Charts...

JavaDay a Roma il 30 gennaio 2010 (11-12-2009)
Anche quest'anno si terrà a Roma - presso l'Università di Roma Tre - l'attesissimo evento JAVADAY oggi giunto alla 4° edizione. Una full...

Adobe AIR 2 beta su Adobe Labs (09-12-2009)
Già da qualche giorno è disponibile la nuova versione beta di Adobe AIR. Molte sono le novità che questa release presenta. Anzitutto, dato il...

FITC 2010: pronti per la 3° edizione! (22-11-2009)
Nel 2010 si terrà ad Amsterdam il 22 e 23 febbraio: segnate queste date sulla vostra agenda, mi raccomando! E' assolutamente vietato mancare! E...

Verso la creazione di Rich Web Applications con le novità di Spring 3.0 e l'integrazione con Adobe Flex (18-11-2009)
Un evento unico, completamente gratutito, condensato in 3 ore dense di contenuti e anteprime. Per la prima volta in Italia verrà presentata...

Nuovi e-seminar per FlexGALA in calendario (09-11-2009)
Come preannunciato lo scorso settembre, alla ripresa post-vacanze, eccoci con il primo appuntamento al quale faranno seguito altri eventi in...

Website Architecture and Design Using XML
Author : O'Reilly New Books

Take your web design skills to the next level with XML, and learn how to use the content behind the site to drive the information, navigation, and...


continua...

HTML5 Mobile Web Development
Author : O'Reilly New Books

Create mobile web applications using the latest HTML5 technologies. In this 10-session video course, you’ll learn how to style your apps to...


continua...

apri dettaglio news Microsoft Office Professional 2010 Step by Step
Author : O'Reilly New Books


apri dettaglio news Working on New and Legacy topics in the same time.
Author : Flexblog by Faratasystems


JavaDay IV edizione

Data di svolgimento: 30-01-2010

A day in a differtent universe è quello che si...

Rich Web Applications con Spring Training

Data di svolgimento: 30-11-2009

Un evento unico, completamente gratutito, conde...

WorkCity ospite allo SMAU 2009

Data di svolgimento: 21-10-2009

WorkCity, nato da un'idea del nostro collaborat...

Integrare LiveCycle DS nelle architetture Enterprise

Data di svolgimento: 27-11-2008

Livecycle DS e Flex 3 sono le soluzioni di ...

Live Cycle DS best practices: creare architetture per RIA

Data di svolgimento: 05-11-2008

Livecycle DS e Flex 3 rappresentano insieme il ...

Adobe e l\'Open Source: usare le tecnologie aperte di Adobe

Data di svolgimento: 28-10-2008

Non solo licenze a pagamento: Adobe ha detto sÃ...