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

Primo esempio

Prime nozioni sul caricamento di un file xml
Prime nozioni sul caricamento di un file xml
Link copiato negli appunti

Caricamento di un file xml

La struttura del caricamento è la stessa in Flash 5 e Flash MX. Partiamo con la creazione di un file XML di base, "file1.xml", composto dalla dichiarazione della codifica e da un singolo nodo dotato di un contenuto testuale:

In Flash, creiamo un'istanza della Classe XML, dentro la quale caricare i dati contenuti nel file esterno:

// creiamo un'istanza della Classe XML
mio_xml = new XML();

Quindi, associamo al gestore di evento onLoad una funzione che verrà chiamata automaticamente a caricamento ultimato:

mio_xml = new XML();
// definiamo la funzione da eseguire
// al completamento del caricamento
mio_xml.onLoad = function()
{
    // istruzioni
    };

Alla funzione appena definita viene passato, di sistema, un unico parametro. Questo parametro contiene un valore booleano, true o false: true se il caricamento è stato completato in modo corretto, false in caso contrario (ad esempio quando il file cercato non esiste o ha un altro nome).

Inventiamo quindi un nome per questo parametro, e inseriamolo tra le parentesi della funzione (per l'esempio utilizziamo quello del manuale, "success"):

mio_xml = new XML();
mio_xml.onLoad = function(success)
{
    // se il valore di "success" è "true"
    if(success){
        // istruzioni da eseguire se il
        // caricamento è andato a buon fine
       
trace("caricamento completo");
    // altrimenti
    } else
{
        // istruzioni da eseguire se il
        // caricamento non è andato a buon fine
        trace("caricamento errato");
    }
};

Utilizziamo infine il metodo load per caricare il file *.xml e settiamo la proprietà ignoreWhite come vera:

mio_xml = new XML();
// gli spazi e gli a capo nel
// file XML vengono ignorati
mio_xml.ignoreWhite = true;
mio_xml.onLoad = function(success)
{
    if success){
       
trace("caricamento
completo");
    } else
{
        trace("caricamento errato");
    }
};
// carichiamo il file XML
mio_xml.load"file1.xml");

Per poter visualizzare i dati nel filmato, creiamo sulla timeline principale, dove risiede lo script, un campo di testo dinamico multiriga con associata la variabile "testo". Dal momento che gli esempi sono sviluppati in Flash 5, impostiamo la variabile associata dal campo "Variable" del pannello Text Options:

Pannello Text Options

Pannello Text Options

(Nel trasferire gli esempi al Flash MX, potremo usare i nomi di istanza dei campi di testo dedicata al LoadVars

Nota: evidentemente, un'istanza della Classe XML non è un movieclip. Per questo motivo, da dentro la funzione associata al gestore onLoad non potremo usare un riferimento come _parent o this._parent per risalire alla timeline in cui sono presenti i tre campi di testo.

Quello che dobbiamo fare, a questo punto, è creare nell'oggetto "mio_xml" una variabile che contenga un riferimento alla timeline in cui giace, esattamente come se scrivessimo un indirizzo di casa su un bigliettino.

Una volta creato questo riferimento, con la sintassi this.variabile arriveremo effettivamente alla timeline cercata.

Creiamo, nell'oggetto mio_xml, un riferimento alla timeline in cui giacciono script e campo di testo:

mio_xml = new XML();
// creiamo un riferimento alla timeline in
// cui risiedono sia lo script che i tre
// campi di testo, e salviamolo
// nella variabile "path"
mio_xml.path = this;
mio_xml.ignoreWhite = true;
mio_xml.onLoad = function(success)
{
  if(success){
    // istruzioni
  } else {
    // istruzioni
  }
};
mio_xml.load("file1.xml");

Modifichiamo quindi lo script in modo da popolare il campo di testo:

mio_xml = new XML();
mio_xml.path = this;
mio_xml.ignoreWhite = true;
mio_xml.onLoad = function(success)
{
  if (success){
   
// creiamo la variabile "testo" nella timeline
   
// il cui riferimento è contenuto nella variabile
    // "path": in questo modo, il campo "testo"
    // ci mostrerà il contenuto dell'oggetto dati_xml
    this.path.testo = this;
  } else {
   
// informiamo l'utente del mancato caricamento
    this.path.testo = "caricamento errato";
  }
};
mio_xml.load("file1.xml");

Scarica l'esempio

Come possiamo vedere, nel campo di testo appare tutto il contenuto del file xml, privo degli spazi e degli a capo tra i nodi (grazie all'ignoreWhite). Quindi l'istruzione

this.path.testo = this;

trasferisce nella variabile testo il contenuto dell'oggetto stesso, indicato dal secondo this.

Ora, come abbiamo visto nelle pagine precedenti, possiamo visualizzare nel campo di testo solo l'intestazione del file:

mio_xml = new XML();
mio_xml.path = this;
mio_xml.ignoreWhite = true;
mio_xml.onLoad = function(success)
{
  if(success){
   
// mostriamo nel campo di testo solo
    // l'intestazione del file xml
    this.path.testo = this.xmlDecl;
  } else {
    this.path.testo = "caricamento errato";
  }
};
mio_xml.load("file1.xml");

Scarica l'esempio

Oppure, possiamo mostrarne solo il primo nodo figlio:

mio_xml = new XML();
mio_xml.path = this;
mio_xml.ignoreWhite = true;
mio_xml.onLoad = function(success)
{
  if(success){
   
// mostriamo nel campo di testo solo
    // il primo nodo figlio del file xml
    this.path.testo = this.firstChild;
  } else {
    this.path.testo = "caricamento errato";
  }
};
mio_xml.load"file1.xml");

Scarica l'esempio

Ti consigliamo anche