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.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro