Guardiamo queste due immagini:
File XML formattato con spazi
File XML senza spazi e a capo
Nonostante i due file XML rappresentati siano sostanzialmente identici, hanno una differenza molto evidente: nel primo caso, ai nodi è stata applicata una formattazione, con diversi "a capo" e con relativa indentazione, mentre nel secondo mancano entrambi.
È chiaro che il primo sistema rende il file XML più leggibile e gradevole all'occhio umano, ma per la "macchina" è meglio il secondo: per la maggiore velocità di parsing, e per l'assenza degli spazi che, di default, vengono considerati come nodi testuali vuoti
Cosa significa? Che se formattiamo il file XML come nel primo caso, il parser XML del Flash penserà che l'a capo tra <elenco> e <categoria...> sia un nodo, con risultati imprevedibili per quanto riguarda l'utilizzo dei dati.
Per poter utilizzare quindi la formattazione del primo tipo, ma far considerare al parser XML i nodi come se utilizzassimo il secondo, si deve settare la proprietà ignoreWhite
dell'XML come vera:
mio_xml = new XML();
mio_xml.ignoreWhite = true;
Al momento del parsing, il player verifica la proprietà ignoreWhite
dell'istanza della Classe XML e, nel caso questa sia settata come true
, ignora tutti gli spazi bianchi e gli a capo che non sono compresi all'interno del contenuto di un nodo.
<nodo>gli spazi tra queste parole vengono considerati come tali</nodo>
Ora, la proprietà ignoreWhite
funziona correttamente con il Flash Player 6 (corrispondente al Flash MX), ma non con tutte le versioni del Flash Player 5. In particolare, si può utilizzare tranquillamente solo a partire dalla versione 5,0,41,0.
Dobbiamo quindi prestare attenzione:
• che, per la visualizzazione nel browser, sia installata una versione del plugin superiore alla 5,0,41,0
• che, nell'ambiente di authoring del Flash5, la versione non è sufficientemente elevata, essendo la 5,0,30,0, come si può verificare dal debugger (in figura):
Debugger
e che quindi non funziona
• che, all'uscita del Flash 5, la proprietà era ancora in fase di "sperimentazione", e che quindi non viene colorata di blu, come le altre proprietà, nel pannello delle Azioni
Nel caso in cui volessimo testare il nostro filmato nell'ambiente di authoring del Flash 5, o nel caso in cui non potessimo prevedere, per l'utente finale, una versione del player superiore o uguale alla 5,0,41,0, potremmo:
- formattare il file xml come mostrato dalla seconda figura
oppure
- utilizzare la funzione stripWhiteSpace creata da Colin Moock, e scaricabile con il nome "strip xml whitespace" dal suo Code Depot.