Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuţii   




Cartea de oaspeţi   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


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


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro