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!
|