IPRO - PC Magazine Romania, 2002
Comunitatea experților și a cititorilor PC Magazine
- Internet PRO
FLASH Components:
Marea revelație din FLASH MX
Ioan Alexandru
Lazăr
Oricine a lucrat în FLASH în ultimul timp cunoaște probabil lucrul cu funcții.
Funcțiile pot avea parametri, care să ,,reglementeze" acțiunile lor. În același
fel, Movie-Clip-urile pot fi ,,parametrizate" pentru a defini acțiunile lor.
Așa de exemplu, se pot stabili unele valori ale variabilelor din cadrul unor
movie-clip-uri. De fapt, ne putem gândi la Movie-Clip-uri ca la animații parametrizate.
FLASH Components reprezintă movie-clip-uri foarte complexe, care au parametri
definiți în codul ActionScript. Acești parametri pot fi modificați împreună
cu opțiuni suplimentare, în timpul execuției programului. În general, componentele
Flash se pretează foarte bine pentru construirea unor elemente de interfață
(cine a lucrat în FLASH 3 sau 4 știe ce chin însemnă să setezi zeci și zeci
de variabile și parametri pentru fiecare buton radio sau bară de derulare),
dar se pot utiliza în general pentru orice movie-clip care este folosit foarte
des într-un program, și care necesită schimbarea multor parametri în timpul
execuției.
O tentativă de introducere a flash components a apărut încă de la Flash 5, prin
SmartClips. Problema acestora era însă că nu prea se integrau în ,,tema generală"
a ActionScript, erau destul de greu de implementat și de aceea nu au prea fost
folosite de către utilizatorii flash.
FLASH MX vine cu șapte Components (le vom numi componente pe parcursul articolului)
predefinite (pe care probabil că le știți deja dacă ați lucrat cu Visual Basic).
Este vorba de ScrollBar, ComboBox, ListBox, PushButton, RadioButton, ScrollBar
și ScrollPlane. Aceste componente sunt denumite generic FLASH UI Components,
pentru că au ca aplicație evidentă realizarea de interfețe grafice.
Dar nu vă gândiți că flash components înseamnă numai aceste elemente de interfață.
În general, flash components reprezintă o soluție excelentă pentru a parametriza
orice fel de movie-clip-uri. Aplicații pentru flash components se pot găsi,
de exemplu, pentru realizarea de formulare. De fapt, în cazul formularelor,
folosirea componentelor vă scutește de multe ore de muncă pentru cazul în care
cei care completează formularul pot folosi unele elemente de evidențiere a textului-scris
cu bold sau italic-cazul forumurilor unor site-uri realizate complet în flash.
De asemenea, ele se pot folosi pentru modificări dinamice. De exemplu, în momentul
în care un film ajunge la un anumit cadru, el poate declanșa o ,,reacție în
lanț", care să modifice proprietățile mai multor obiecte din scenă, cu un volum
mult, mult mai mic de cod și de lucru.
De exemplu...
Pentru a ilustra cât mai bine ce înseamnă flash components am găsit un editor
de text la adresa www.flashcomponent.com/.
Îl puteți descărca de pe situl PC Magazine, de la adresa: www.pcmagazine.ro/ipro/texteditor.zip.
În acest articol, programul este folosit pe post de cobai, așa că ar trebui
să vă uitați peste sursă. Acest editor de text folosește atât componente flash
UI, cât și o serie de componente realizate de către autorul programului. Astfel,
programul permite scrierea de text și aplicarea de formatări, totul folosind
flash components.
Cum este realizat acest efect? Ei bine, fiecare buton, movie-clip, chiar și
textul, au proprietăți (parametri) definiți. Aceștia se pot schimba atunci când
userul activează un buton (de exemplu, butonul de aliniere la dreapta). În momentul
în care este apăsat butonul de aliniere la dreapta, nu este încărcat un întreg
frame care să conțină textul aliniat la dreapta (imaginați-vă ce dimensiuni
ar avea filmul...și mai ales imaginați-vă cât ar fi trebuit să lucrați la asta).
În schimb, pur și simplu sunt modificați parametri movie-clip-ului care conțin
textul, ceea ce are ca efecte micșorarea timpului de lucru, dar și micșorarea
sensibilă a dimensiunilor filmului, în forma lui finală. Și asta în vreo 300
de linii cât are editorul (oricum, muuuult mai puțin decât un editor în C++
sau VisualBasic)
Cum se programează...
Sintaxa ActionScript este, în principal, apreciată, pentru că este foarte clară,
și nu voi insista asupra ei. În schimb, voi prezenta elementele particulare
pentru flash components.
Astfel, pentru a realiza o componentă, se trece prin trei faze: definirea constructorului
pentru clasă, definirea metodelor clasei, și apoi conectarea ei (adică legarea
clasei cu movie-clip-ul), codul ActionScript necesar fiind inclus între #initclip
și #endinitclip.
function TextEditorClass () definește constructorul pentru clasa TextEditor.
Atenție însă! În momentul în care se execută o instrucțiune care conectează
movie-clip-ul la o clasă, Flash reatribuie tipul de movie-clip la clasa cu care
este conectat. Numai că noi vrem totuși să avem o componentă care să se comporte
ca un movie-clip, de aceea, se folosește instrucțiunea:
textEditorClass.prototype = new MovieClip(). Clasa ,,moștenește" metodele și
proprietățile unui movie-clip, astfel încât să putem folosi asupra unei componente
orice proprietate sau metodă a unui movie-clip. Este obligatoriu ca declarația
de moștenire să urmeze constructorului.
Secvența:
TextEditorClass.prototype.visibleProp = function () {
this._visible = this.visibleParameter;
}
conține o funcție de actualizare. Astfel, atunci când un parametru (în cazul
nostru visibleParameter) a fost modificat, se modifică imediat și proprietatea
asociată respectivului parametru. În fine, urmează conectarea. Object.registerClass("FTextEditor",
TextEditor Class); Această secvență leagă clasa TextEditorClass de movie-clip-ul
identificat ca FTextEditor. Urmează definirea metodelor care vor fi folosite
de program pentru componentă. Asta face, în exemplul nostru, instrucțiunea:
TextEditorClass.prototype.titleUpdate = function () {
this.title_txt = this.titleUpdateParameter;
}
Am folosit această instrucțiune pentru a prezenta sintaxa în general. După definirea
tuturor metodelor, urmează definirea proprietăților componentei. Aceasta se
face din fereastra Component Definition, pe care o puteți accesa printr-un click-dreapta
pe numele componentei din fereastra Library, și apoi alegerea opțiunii ,,Component
Definition". De aici, puteți adăuga parametri și îi puteți asocia cu o anumită
variabilă. Fiecare variabilă are o valuare implicită și un tip. Tipurile de
variabile sunt adaptate pentru multimedia, fiind vorba de Array, Object, List,
String, Number, Boolean, Font Name și Color. Apoi, urmează să adăugăm o metodă
indispensabilă, anume Object.AddProperty.
Metoda addProperty definește o proprietate. În momentul în care valoarea proprietății
se modifică, este chemată o funcție care procesează o valoare (în loc să ,,țină
minte" valoarea într-o variabilă adevărată). Așa de exemplu, putem defini o
proprietate numită ,,font", care să folosească atribuieFont și citeșteFont pentru
a atribui un font, respectiv pentru a îl citi. Atunci când un buton, de exemplu,
accesează Font, vom ști că el cheamă funcțiile definite, nu niște variabile.
De ce? În cazul unei alte implementări, vom avea de actualizat doar funcțiile
de acces pentru ca ceea ce am construit să funcționeze corect.
Asupra acestei porțiuni nu voi mai insista, pentru că este destul de greu de
explicat (și de înțeles) în afara unui tutorial. De aceea, iată siturile care
tratează această problemă mai adânc decât aș putea eu să o fac într-un articol:
www.flashcomponents.net
(este un sit consacrat acestei teme, cu o serie lungă de tutoriale și de explicații)
www.flashcomponent.com
(un alt sit consacrat problemei)
www.urbanev.com (există
câteva articole care să trateze FLASH Components, dintre care vi-l recomand
pe cel scris de David Doull, în luna mai 2002)
www.virtual-fx.net (unele
tutoriale pentru FLASH Components)
www.macromedia.com (situl
Macromedia, producătorul FLASH, cu o serie de resurse foarte importante oferite
pentru download - componente, documentație, tutoriale etc.)
Soluții și probleme legate de Internet
|