IPRO - PC Magazine Romania, Aprilie 2003
SOLUŢII PENTRU PROGRAMATORII ŞI DESIGNERII WEB XML
în Flash
Ioan Alexandru Lazăr
Dacă vă mai aduceţi aminte de Flash 4, ştiţi şi faptul că era destul de
rudimentar. Practic, tot ceea ce designerii web făceau cu Flash erau animaţiile.
Odată cu Flash 5 însă, lucrurile s-au schimbat. Asta în primul rând pentru
că ActionScript a devenit un limbaj robust, cu reguli clare, apropiat întrucâtva
de Java.
Însă, pe lângă formidabila dezvoltare a limbajului ActionScript, utilizatorii
Flash 5 au văzut un lucru interesant: Flash 5 includea un parser XML. Flash
MX este capabil să folosească XML, şi asta va scuti pe mulţi de efortul necesar
pentru programele care includ zeci şi zeci de variabile şi perechi constantă-valoare.
Mai ales că în Flash MX obiectul XML a devenit nativ.
XML Şi HTML
XML este prescurtarea (şi eu m-am săturat de prescurtări ) de la eXtended
Markup Language. La fel ca şi HTML, este bazat pe "etichete" (tag-uri),
dar are o deosebire esenţială faţă de predecesorul său. HTML descrie felul
în
care informaţia este afişată de browser. XML descrie informaţia. De exemplu,
atunci când scriu <p>Alex</p>, eu
doar afişez textul "Alex".
Cu totul altceva este dacă spun <nume>Alex</nume>. Aici se înţelege
clar că eu prezint o informaţie (nume) şi nu scriu pur şi simplu un text.
Informaţia devine şi mai specifică dacă spun <numele_meu>Alex</numele_meu>.
Acum, cine citeşte fişierul XML, ştie că e vorba de numele meu, că mă cheamă
Alex. În felul acesta, am spus în mod clar că mă cheamă Alex. Mai mult nu
pot spune, poate doar <numele_lui_Alex>, dar nu mai are sens. Clar
până aici? Mai uitaţi-vă puţin pe ierarhie:
< nume_întreg>
<prenume >Alex</prenume>
<nume>Lazăr</nume>
< /nume_întreg>
V-aţi dat seama că elementul <nume_întreg>, reprezentând numele meu "din
buletin" este format din <nume > şi <prenume> care se numesc
noduri.
XML
şi Flash
Am spus în articolul despre SVG că se pot realiza grafice actualizate în timp
real. La asta foloseşte XML unui designer care foloseşte Flash: este o metodă
dinamică de a aduce date. În loc să se actualizeze şi să se exporte fişierul
.fla (ceea ce durează mult, şi este imposibil de realizat cu un script Perl
sau CFML), se modifică fişierul XML, iar datele sunt transmise filmului Flash,
ceea ce este mult mai rapid şi mai eficient.
XML prezintă o mulţime de avantaje. În primul rând, este text ASCII. Puteţi
folosi orice editor de text pentru a scrie fişiere XML, chiar şi Notepad din
Windows. XML nu depinde de platformă. Dată fiind înrudirea cu HTML, oricine
a lucrat vreodată în acest limbaj se va descurca în XML. Spun asta pentru că
XML are o singură etichetă de care e nevoie şi anume <?xml version="1.0"?>.
Dacă vreţi să vedeţi cum arată un fişier XML, găsiţi un exemplu pe CD, în secţiunea
IPRO şi pe sit la adresa www.pcmagazine.ro/ipro.
Cum se programează
Primul lucru de care veţi avea nevoie când veţi folosi un fişier XML în Flash
este să creaţi un obiect XML (nu mă voi referi la obiectele de tip soclu XML,
poate în alt număr). Pentru asta, se foloseşte instrucţiunea obiect = new XML(),
care creează o instanţă a obiectului de tip XML. E bine să spuneţi parserului
să ignore caracterele cum ar fi cele de sfârşit de linie (line break, caractere
invizibile inserate când apăsaţi Enter). Aşa că: obiect.ignoreWhite = true.
Acum, avem nevoie de o sursă, de date care să fie trecute prin parser. Metoda
XML.ParseSource(sursa) se ocupă de asta, (sursa) reprezentând calea spre fişierul
XML care trebuie trecut prin parser.
Obiectul XML are două două funcţii pentru evenimente (event-handlere):
onData şi onLoad. Funcţia OnData este folositoare atunci când vreţi să fiţi
sigur
că aţi scăpat de erori, căci corespunde momentului în care fişierul XML a fost
încărcat, dar datele nu au trecut prin parser. OnLoad corespunde momentului
în care fişierul XML a fost încărcat, iar datele au trecut prin parser. Şi
pentru fişiere XML se pot realiza preloadere folosind metodele XML. GetBytesLoaded
(întoarce numărul de bytes încărcaţi) şi XML.GetBytesTotal (întoarce numărul
total de bytes). În fine, voi mai vorbi despre metoda XML.hasChildrenNodes,
care întoarce true dacă un element (ex <nume_întreg>) are noduri-copii
(ex <nume_de_botez), şi false dacă nu.
Deocamdată, acestea vă sunt suficiente, şi puteţi chiar experimenta câte
ceva dacă vă uitaţi pe documentaţia ActionScript. Informaţii despre XML puteţi
găsi
la: www. xml.com şi www.w3.org/XML/, situri oficiale şi cu un conţinut valoros.
Uitaţi-vă peste ele, pentru că în curând XML va deveni un standard şi pentru
Flash. Mult succes!
|