Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 13 di 18
  • livello principiante
Indice lezioni

Caricare dati esterni

Come caricare informazioni da altri file e dal web
Come caricare informazioni da altri file e dal web
Link copiato negli appunti

Un aspetto particolarmente utile per lo sviluppo di giochi e applicazioni è la possibilità di caricare dei dati esterni al filmato. Pensiamo ad esempio ad un'applicazione che va a recuperare le notizie più recenti di un sito, o che carica determinate informazioni da un file presente sul cellulare; purtroppo in Flash Lite 1.1 non è possibile salvare dati e file sulla periferica, mentre è possibile caricarli.

Il caricamento può avvenire da diverse fonti come ad esempio file di testo, script server-side (php, asp, ...), eccetera, sia che queste siano presenti sul cellulare oppure su internet. Il codice da utilizzare è molto semplice e bastano pochi passaggi per ottenere il risultato voluto. Vediamo i passaggi da seguire.

Preparazione del file esterno

Per prima cosa vediamo come il file esterno dev'essere strutturato perché possa essere letto da Flash. Il file dovrà restituire le variabili e i valori in questo modo:

Listato 1. Sintassi del file per il passaggio di varibili

variabile1=valore&variabile2=valore2

La struttura è quindi nomevariabile=valore, usando la "E commerciale" (&) per dividere le diverse variabili. Questa struttura vale per qualsiasi tipo di file: nei file di testo basterà scriverla direttamente, gli script server side dovranno restituire una stringa di quel tipo (non vedremo come fare in questo caso poiché esula dagli scopi di questa guida).

Prepariamo un semplice file di testo, chiamiamolo "dati.txt" e scriviamoci dentro

Listato 2. Contenuto di "dati.txt"

testo1=Caricamento dati esterni&testo2=Il nostro primo esperimento

Vediamo come recuperare questi valori per usarli in flash.

Importare i dati nel filmato

Per caricare i dati da un file esterno è sufficiente una riga di codice. I dati potranno poi essere visualizzati come testi dinamici. In questo caso assegnamo ad un campo di testo dinamico la variabile con il nome che troviamo nel file esterno. Creiamo due campi di testo con variabili "testo1" e "testo2".

Listato 3. Esempio di uso della funzione loadVariablesNum()

loadVariablesNum("Dati.txt",0);

I dati estratti dal file vengono asociati al livello 0 (che è il livello principale, su cui si trovano i campi di testo dinamico che abbiamo creato).

Testando il file nell'emulatore il risultato dovrebbe essere simile a quello mostrato in figura.

Figura 1. Prova del filmato
Prova del filmato

Caricare dati dal web

Il caricamento di dati dal web è uguale a quello visto finora, semplicemente dovremmo inserire il percorso completo con l'URL del sito, in questo modo

Listato 4. Caricamento dati esterni da web

loadVariablesNum("http://www.sito.it/Dati.txt",0);

In questo caso il filmato va testato sulla periferica, poichè non funziona sull'emulatore. Da notare che se avviamo il filmato sul cellulare senza esserci prima connessi viene automaticamente richiesta (e poi effettuata nel caso la si consenta) la connessione.

Un semplice preload

Nel caso trasferissimo grosse quantità di dati, o comunque nel caricamento da web su cellulari che non sfruttino le ultime connessioni, è utile mostrare all'utente un messaggio che lo avverta che il caricamento dei dati è in corso.

Purtroppo in Flash Lite non abbiamo un controllo vero e proprio sulla quantità di dati caricati, per cui dobbiamo usare come al solito un metodo alternativo: finchè una delle variabili contenute nel file esterno non è caricata nel filmato, diamo per assunto che il caricamento non è completato; una volta che la variabile esterna viene caricata da Flash faremo invece sparire il messaggio di caricamento.

Creiamo un movieclip composto da due fotogrammi e sul primo fotogramma inseriamo un campo di testo statico con la scritta "Caricamento in corso...".

Sempre sul primo fotogramma scriviamo il codice:

Listato 5. Fa sparire il loader quando "testo1" viene caricata

if(_root.testo1 != ""){
 _visible = false;
}

Quindi inseriamo il movieclip creato nell'area di lavoro.

Eseguendo questa operazione faremo in modo che, finchè la variabile "testo1" non avrà un valore (il codice !="" significa "non è vuota", ha un valore diverso da quando è vuota), il testo "Caricamento in corso" sarà visibile. Non appena la variabile sarà stata caricata, l'azione _visible = false fa sparire il movieclip contenente il testo di caricamento.

Ovviamente nell'emulatore non avremo quasi modo di vedere il messaggio relativo al caricamento, poiché le variabili esterne vengono caricate molto rapidamente.

Abbiamo visto come caricare e mostrare dati da fonti esterne. Purtroppo come abbiamo accennato non è possibile salvare dati sulla periferica in questa versione di Flash Lite (ci sono comunque dei tool che possono aiutare in questo, come vedremo in seguito), ma anche solo il caricamento può essere utile in una grande varietà di situazioni.

È possibile scaricare l'esempio sviluppato in questa lezione.

Ti consigliamo anche