Sunteți pe pagina 1din 11

Lucrare de laborator Nr.

1
Tema: Dezvoltarea aplicaiilor multimedia n Adobe Director. Digitizarea.
Dezvoltarea bibliotecii digitale
Scopul lucrrii: familiarizarea cu produsul Director, studierea principalelor componente
necesare dezvoltrii unei aplicaii multimedia, studierea introducerii tehnologiei informaiei prin
dispozitive de scanare.

Produsul de creaie multimedia Director


Produsul de creaie multimedia Director lucreaz cu mai multe componente identificabile de
ctre utilizator prin prisma unor ferestre de vizualizare. Aceste componente sunt utile pentru a
construi o prezentare multimedia i se invoc prin selecia unei opiuni ce indic componenta din
meniul Window.
Componenta Stage definete fereastra (zona client) n care se deruleaz
prezentarea multimedia dup cum se poate observa n figura 1.1.

Fig. 1.1 Componenta Stage

Vizualizarea coninutului ferestrei se poate face la diferite scale. n figura 1.1 scala de vizualizare
este 100% dar se poate schimba utiliznd controlul de tip combobox din partea de jos a cadrului
ferestrei. Redimensionarea ferestrei se face prin intermediul proprietii Stage Size a obiectului
Movie care identific prezentarea (aplicaia) multimedia n Director. Tot n partea de jos a
cadrului ferestrei exist butoane pentru controlul derulrii prezentrii. Funcionalitatea lor va fi
prezentat n cadrul componentei Control Panel.
Componenta Cast este utilizat pentru a stoca actorii unei aplicaii. Ea se poate
configura (View/Cast/Thumbnail) astfel nct s prezinte actorii sub forma unor mici
ferestre de vizualizare. Actorii se pot aduga n componenta Cast prin selecia
urmtorului membru cast neocupat apoi Click Dreapta/Import dac ei provin din
afara mediului de programare sau se pot genera de ctre alte componente ale
produsului software.
Fig. 1.2 Componenta Cast

n figura 1.2 se poate observa c, n componenta Cast sunt doar doi membrii, unul (europe) este
obinut prin importul unei imagini, n timp ce al doilea membru este un script.
Componenta Cast poate fi privit ca fiind o baz de date ce memoreaz actorii unei aplicaii.
Aceast component poate fi stocat independent de aplicaia n care a fost creat. In acest fel,
actorii unei aplicaii pot fi folosii de ctre o alt aplicaie. In figura 5.2 se prezint o component
cast intern aplicaiei (Internal).
Dac se dorete crearea unei componente independente n vederea refolosirii ei n alte aplicaii se
procedeaz astfel:
- se creaz un nou cast (File/New/Cast);
- se furnizeaz un nume, se seteaz opiunea External, dup care se apas butonul Create;
- apoi se populeaz componenta Cast cu actori.

Dac se nchide fereastra, atunci se iniiaz dialogul de salvare pe disc, componenta se va stoca
ntr-un fiier avnd extensia cst. Deschiderea componentei cast se face cu File/Open i se alege
fiierul corespunztor cu extensia cst. Un membru Cast se refer prin construcia member(n)
unde, n este numrul sau numele membrului Cast dac membrul aparine componentei Cast
interne (Internal) sau prin construcia castlib(nume).member[n] dac membrul aparine unei
componente Cast externe identificabile prin nume.
Componenta Tools conine instrumente utile n dezvoltarea de aplicaii Director
cum ar fi: butoane de diferite tipuri, containere de texte, obiecte grafice, dup cum
se poate observa n figura 1.3.

Fig. 1.3 Componenta Tools


Componenta Score definete n Director axa timpului. Ea se utilizeaz pentru a secvenializa
de-a lungul axei timpului actorii n funcie de scenariul aplicaiei. Aceast component este
organizat ca o matrice:
- liniile reprezint canale (sprite) i folosesc pentru a instania actorii din componenta cast;
- coloanele reprezint cadrele (frame) i folosesc pentru a marca durata de vizibilitate a unui
actor n raport cu ntregul film.

Fig. 1.4 Componenta Score

Se observ n figura 1.4 c pe canalul 1 membrul cast europe este instaniat i


dureaz de la primul cadrul pn la cadrul 20. Pe canalele numerotate cu 1, 2, ..., n
se pot instania membri din cast dup cum dorete utilizatorul. Canalele din partea
de sus a ferestrei au destinaii bine precizate:

- utilizat pentru stabilirea tempo-ului aplicaiei (tempo-ul precizeaz viteza de afiare a cadrelor);
- stabilete paleta de culori;
- canal pentru stabilirea efectelor de tranziie dintre cadre;
- i canale specializate pentru membrii de tip sunet;
- canal destinat pentru a asocia comportamente cadrelor.

n figura 1.4 se observ o linie vertical de culoare roie care reprezint cursorul
componentei Score i identific cadrul care este vizibil pe scen.

Componenta Control Panel este specializat pentru controlul derulrii prezentrii


multimedia n Director. Ea permite trecerea aplicaie din modul construcie n modul
execuie. Funcionalitatea controalelor din componenta Control Panel este ilustrat
n figura 1.5.
Fig. 1.5 Componenta Control Panel

Componenta Script este vizibil sub forma unui editor de texte i se utilizeaz pentru a scrie
scripturi. Scripturile n Director se pot scrie fie n limbajul de tip script Lingo, propriu produsului
software, fie n Java Script. Prin intermediul scripturilor se definete interaciunea dintre
utilizator i aplicaie i se implementeaz funcionalitatea acesteia.
5.2. Etapele de dezvoltare ale unei aplicaii multimedia
Indiferent de compexitatea unei aplicaii, pentru construirea ei, n Director, este necesar s se
parcurg urmtoarele etape:
A. Identificarea actorilor ce se vor utiliza n aplicaia respectiv. Aceast etap implic utilizarea
componentei Cast n sensul c ea va fi populat cu elemente. Actorii pot s provin din exteriorul
mediului de dezvoltare (Director), cum ar fi imagini, secvene de sunet sau secvene video
achiziionate independent i existente n formate acceptate n Director sau pot fi create utiliznd
componentele produsului software.
De exemplu, dac dorim s construim o aplicaie simpl care s afieze un mesaj ntr-o csu de
mesaje cnd se d click pe un buton atunci prima etap se concretizeaz n trasarea butonului din
bara de instrumente (Tools) pe scen n locul dorit. Se scrie textul dorit pe buton, n exemplu
Mesaj, iar n Cast se poate observa c obiectul a fost adugat ca membru. Figura 1.6 ilustreaz
aceast operaie.

Fig. 1.6 Popularea componentei Cast

B. Secvenializarea actorilor presupune utilizarea componentei Score (axa timpului). Actorii


existeni n Cast, conform unui scenariu sunt instaniai n Score, li se fixeaz durata de timp n
care ei sunt vizibili i momentul ntrrii lor n scen. In cazul exemplului prezentat, trasarea
butonului pe scen determin includerea lui ca membru n Cast ct i secvenializarea lui n
Score. Implicit actorul se secvenializeaz de la frame-ul indicat de cursorul componentei Score
i dureaz 30 frame-uri (implicit). Dup cum se poate observa din figura 1.7 butonul ntr n
scen ncepnd cu primul frame si dureaz 30 frame-uri.

Fig. 1.7 Secvenializarea actorilor

C. Definirea interfeei cu utilizatorul este etapa n care se utilizeaz componenta Script pentru a
scrie secvene de cod ca rspuns la evenimentele ce se intercepteaz pe perioada execuiei
aplicaiei. Prin aceast etap dezvoltatorul permite utilizatorului s aleag scenariul de derulare a
aplicaiei multimedia. Dac se execut aplicaia n forma prezentat atunci va apare pe scen
butonul pe durata a 30 de frame-uri dup care derularea ei se va opri sau se va relua de la primul
frame n funcie de opiunea setat n componenta Control Panel. Dac se apas pe buton n timp
ce aplicaia este n derulare nu se va ntmpla nimic pentru c nu a fost definit nici o
funcionalitate pentru evenimentul de click pe butonul mouse-ului.

Pentru aplicaia definit anterior se vor scrie dou scripturi avnd funcionalitile:
- la frame-ul 30 se va pstra aplicaia n execuie pentru ca utilizatorul s apese pe butonul Mesaj
sau s termine aplicaia:

function exitFrame(me)
{ _movie.go(_movie.frame);}

- pentru obiectul buton identificat prin Mesaj se rspunde la evenimentul de click pe butonul
snga al mouse-ului prin scriptul:
function mouseUp (me)
{ _player.alert ("Mesaj la apasare pe buton!");}
Interceptarea mesajului de ctre buton va determina apariia unei casue de mesaje de tip
atenionare n care va fi scris mesajul: Mesaj la apasare pe buton!
D. Distribuirea produciei multimedia este etapa n care aplicaia multimedia se transform astfel
nct s poat fi utilizat independent de mediu Director. Astfel se poate obine din producia
multimedia o aplicaie Windows de tip desktop sau o aplicaie de tip Web. Se alge din meniul
File opiunea Publish Setings iar n caseta de dialog din figura 1.8 se bifeaz categoria Projector
i se obine o aplicaie desktop prin apsarea pe butonul Publish.
Fig. 1.8 Distribuirea aplicaiei

Pentru a obine o aplicaie Web care s poat fi rulat ntr-un Browser Web (de exemplu Internet
Explorer) se bifeaz opiunea Shockwave File mpreun cu HTML. Pentru ca operaia s aib
succes trebuie ca pe calculator s fie instalat un control de tip ActiveX denumit Shockwave
Player care execut aplicaia Director n format Shockwave ntr-o pagin Web.
Dintr-o aplicaie Director se mai pot exporta cadre sau chiar secvene video digitale n format
AVI sau MOV. In acest sens, se alege opiunea Export din meniul File i se completeaz
corespunztor dialogul din figura 1.9.

Fig. 1.9 Exportul de imagini sau video din Director

Prin aceast operaie interactivitatea cu aplicaia multimedia nu se mai poate realiza.


5.3 Tipuri de scripturi i comunicarea prin mesaje
Prin script se nelege o secven de cod realizat pentru a rspunde la mesajele interceptate de
obiecte ca urmare a declanrii unor evenimente, pentru a defini clase sau funcii de utilizator.
Principala structur de program existent n scripturi este handler-ul care are forma:
function nume (argumente)
{
//corpul_handler-ului
}
Un script poate conine unul sau mai multe handler-e. Intr-o aplicaie Director pot exista mai
multe tipuri de scripturi:
1. Script de tip behavior, cel mai utilizat tip de script ntr-o aplicaie Director, care se ataeaz
obiectelor instaniate n score sau cadrelor; aceste scripturi sunt vizibile n componenta Cast, ca
membrii i sunt marcai cu iconia ;
2. Script de tip movie care vizeaz aplicaia n ansamblul ei, prin intermediul lui se trateaz
evenimente specifice aplicaiei (de exemplu: startmovie, stopmovie) sau se definesc funcii de
utilizator cu vizibilitate n toat aplicaia; aceste scripturi sunt vizibile n componenta Cast, ca
membrii i sunt marcai cu iconia ;

Pentru a genera un script de tipul celor doua menionate, se selecteaz urmtorul


membru neocupat din Cast i se activeaz componenta Script (opiunea Script de la
meniul Window). La proprieti, se selecteaz tab-ul Script i se alege tipul de script
dorit pentru a fi generat dup cum se ilustreaz n figura 1.10.

Fig. 1.10 Selecia tipului de script

3. Script ataat membrului Cast, este singurul tip de script care nu se memoreaz ntr-un membru
Cast de sine stttor ci se asociaz cu membrul Cast pentru care a fost definit; pentru a genera un
astfel de script se selecteaz membrul Cast, click dreapta i se alge opiunea Cast Member Script
dup care apare fereastra de editare a scriptului. Membrii Cast crora li s-au asociat astfel de
scripturi sunt marcai i cu iconia pe lng iconia afiat n concordan cu tipul membrului
Cast.
Se poate observa c, unui actor i se poate asocia un script att n Score ct i n Cast. Actorul
ataat unui canal, n Score, este o instan a actorului existent n Cast, de aceea, scriptul lui de tip
behavior este asociat instanei actorului n timp ce scriptul membrului Cast este aplicabil tuturor
instanelor actorului respectiv.
n Director este important a se cunoate ordinea n care un mesaj este interceptat pentru a se
rspunde la el, dat fiind faptul c un handler, pentru un anumit mesaj, poate exista n diferite
tipuri de scripturi. Ordinea n care unui mesaj interceptat i se caut handler-ul de rspuns este
urmtoarea:
- prima dat, mesajul se transmite spre a fi tratat la scriptul de tip behavior ataat obiectului care
a interceptat evenimentul;
- apoi, mesajul se transmite spre a fi tratat scriptului asociat membrului Cast din care a provenit
obiectul;
- mesajul se transmite, n ordine, scriptului asociat frame-ului aferent momentului cnd
evenimentul a fost declanat;
- n ultim instan mesajul se trimite spre a fi tratat scriptului de tip Movie.
Spre exemplificare s presupunem c avem un membru Cast de tip buton instaniat pe canalul 1
n Score i care are asociat un script de tip behavior ce are un handler de rspuns la mesajul
mouseUp de forma:
function mouseUp (me)
{
_player.alert ("executie script behavior");
}
iar scriptul asociat membrului Cast corespunztor este de forma:
function mouseUp ()
{
_player.alert ("executie script asociat membrului cast");
}

Cnd se intercepteaz evenimentul de mouseUp de ctre buton, se execut conform ordinii de


interceptare a mesajelor handler-ul corespunztor din scriptul de tip behavior i se va afia n
casua de mesaje, mesajul executie script behavior. Pentru ca mesajul s fie trimis spre a fi tratat
i n alte scripturi, conform ordinii prezentate, se folosete comanda pass. Dac n scriptul de tip
behavior asociat butonului, handler-ul de rspuns la evenimentul mouseUp ar avea forma:
function mouseUp ()
{
_player.alert ("executie script asociat membrului cast ");
pass();
}
atunci, la apsarea pe buton ar apare o casu de mesaje avnd mesajul: executie script behavior
iar apoi ar apare o csu avnd mesajul executie script asociat membrului cast.
Evenimentele care sunt interceptate pe parcursul derulrii unei aplicaii se pot mpri n dou
categorii:
- evenimente de sistem care sunt predefinite i denumite in Director (de exemplu: ExitFrame,
MouseUp etc);
- evenimente de utilizator definite i gestionate de dezvoltatorul aplicaiei.

Exist evenimente de sistem pe care o aplicaie ntotdeauna le intercepteaz pe


parcursul derulrii ei, ntr-o ordine prestabilit:

A. la startarea aplicaiei:
o prepareMovie;
o prepareFrame;
o beginSprite;
o startMovie.
B. la accesarea unui frame:
o beginSprite;
o stepFrame;
o prepareFrame;
o enterFrame / exitFrame;
o endSprite.
C. la oprirea aplicaiei:
o endSprite;
o stopMovie.

In JavaScript mesajele de utilizator se definesc prin literali. Spre exemplificare, s se coloreze o


elips cu culoarea roie la apsarea unui buton. Aceast operaie se va efectua prin trimiterea
unui mesaj de utilizator (coloreaza) elipsei la apsarea butonului. Elipsa, la primirea mesajului
coloreaza se va colora cu culoarea roie.
Scriptul butonului are forma:
function mouseUp (me)
{
_movie.sendsprite(1,coloreaza,255,0,0);
}
Funcia sendsprite trimite un mesaj unui obiect aflat pe canalul indicat de primul parametru. Al
doilea parametru reprezint numele mesajului iar n exemplu, urmtorii parametri precizeaz
culoarea prin culorile fundamentale ale spectrului RGB.
n scriptul elipsei se rspunde la mesajul coloreaza i se coloreaz elipsa:
function coloreaza (me, v1,v2,v3)
{
sprite(1).color=color(v1,v2,v3)
}
Se observ c informaiile trimise odat cu mesajul se preiau prin parametrii formali
v1, v2 i v3. Parametrul me identific obiectul care primete mesajul i ocup
ntotdeauna prima poziie n lista de parametrii. In script el nu este utilizat dar
trebuie pus n list pentru a se recepiona corect ceilali parametrii ce nsoesc
mesajul. Funcia color formeaz culoarea pornind de la cele trei valori asociate
culorilor fundamentale din spectrul RGB.

Sarcina:

Dezvoltai o aplicaie Desktop care ncarc una sau mai multe imagini dintr-un fiier
i le vizualizeaz ntr-o fereastr. Asupra acestor imagini pot fi executate careva
aciuni, utiliznd controale UI (butoane, cmpuri de introducere a textului, etc.)
Lista cu aciuni posibile:
1. ntoarce imaginea pe vertical; rotete imaginea la un unghi divizibil cu 90 ;
salveaz imaginea rezultat.

2. Regleaz contrastul (0-100%); regleaz luminozitatea (0-100%); salveaz


imaginea rezultat.

3. Scaleaz imaginea; decupeaz imaginea; salveaz imaginea rezultat.

4. Regleaz Nuana de culoare / Saturaia; salveaz imaginea rezultat.

5. Modific imaginea surs (itereaz prin mai multe imagini) prin date introduse
de utilizator; schimb-le ntr-un mod "slide show" (pe un interval de timp);
salveaz imaginea rezultat.

6. Deseneaz pe imaginea ncrcat (de exemplu, cu un instrument de tip


"creion"); regleaz culoarea stiloului; salveaz imaginea rezultat.

7. Convertete imaginea la tonuri de gri; Coloreaz imaginea (se aplic o


culoare pentru imaginea n tonuri de gri ); salveaz imaginea rezultat.

8. Inverseaz culorile la o scar reglabil; salveaz imaginea rezultat.

9. Distorsioneaz imaginea cu un efect de lentil (parametri reglabili ai lentilei);


salveaz imaginea rezultat.

10. Aplic efectul de oglind asupra imaginii de-a lungul unei linii specificabile de
utilizator; salveaz imaginea rezultat.

Fig. Exemple de aplicaii

ntrebri de control:
1. Ce reprezint componenta Stage?
2. Pentru ce este utilizat componenta Cast?
3. Ce elemente conine componenta Tools?
4. Ce definete componenta Score, ce reprezint liniile i coloanele?
5. Care este destinaia componentei Control Panel?
6. Cum pot fi scrise scripturile n Director?
7. Care sunt etapele de dezvoltare ale unei aplicaii mutimedia?
8. Ce reprezint un script?
9. Ce tipuri de evenimente sunt interceptate pe parcursul derulrii unei
aplicaii?
10.Care este ordinea de interceptare a evenimentelor de sistem de ctre o
aplicaie?