IPRO - PC Magazine Romania, Ianuarie 2003
SOLUŢII PENTRU PROGRAMATORII ŞI DESIGNERII WEB
Zgomote de fond sau cum se folosesc sunetele în Flash
Ioan Alexandru Lazăr
Vă mai amintiţi de paginile web de acum câţiva ani? Practic, nu era nici o
problemă dacă opreaţi boxele în timp ce navigaţi pe internet. Ba, de fapt, puteaţi
să le scoateţi din priză şi să le puneţi la naftalină.
Acum însă, totul s-a schimbat. Mai ales dacă folosiţi tehnologia flash pentru
a vă realiza paginile web, sunetele au devenit o necesitate, astfel încât e
o idee bună să mai puneţi un ,,pâs!" din pagină în pagină.
Cu toate acestea, sunetele în cazul flash reprezintă un lucru relativ complicat.
Nu pentru că ar fi nevoie de cine ştie ce cunoştinţe muzicale, ci pentru că,
oricât de rapide ar fi modemurile actuale, nu pot suporta un ,,streaming" constant
de muzică la calitate CD. De aceea, înainte de a începe să inseraţi sunete peste
sunete, e bine să vă gândiţi puţin.

Tipuri şi tipuri...
În flash există două tipuri de sunete. Acestea sunt "event-sound" (o să le numim
sunete-eveniment) şi "streaming-sounds". Un sunet-eveniment trebuie să fie transferat
complet înainte de a fi redat. Un "streaming-sound" este un sunet care va începe
să fie redat imediat ce primele frame-uri au fost transferate, şi este sincronizat
direct cu timeline-ul scenei. Un sunet-eveni- ment se sincronizează cu evenimentele
din scenă. De exemplu, atunci când utilizatorul apasă pe un buton, un sunet-eveniment
se poate declanşa. Practic, sunetele-eveniment sunt independente de film, ele
putând fi controlate de acţiuni. În schimb, un "streaming-sound" este dependent
de film, în sensul că este sincronizat cu animaţia. Atunci când cadrele nu pot
fi afişate destul de repede ca să ţină pasul cu sunetele, sunt sărite pur şi
simplu; un "streaming-sound" nu poate fi redat mai mult timp decât frame-urile
pe care le ocupă.
ActionScript şi proprietăţi
Cine a lucrat în ActionScript în ultimul timp, ştie probabil că este vorba de
un limbaj orientat spre multimedia. Într-adevăr, sunetele sunt tratate foarte
atent în Action Script, dar am de gând să prezint numai câteva instrucţiuni.
Înainte de a trece însă la partea de programare adevărată, ar trebui să ne uităm
la partea simplă a lucrurilor. Importarea unui sunet se face prin File>Import.
Sunetului importat i se pot aplica o serie de efecte simple. Flash vine cu unele
efecte predefinite, dar aceia care nu sunt mulţumiţi de ele pot să realizeze
altele. Evident, nu trebuie să vă aşteptaţi la cine ştie ce efecte complicate,
dar un web-designer va fi mai mult decât mulţumit cu cele existente.
Totuşi, unii doresc să folosească sunetele la lucruri mai complicate. Aşa că
haideţi să ne uităm puţin la partea de programare. Apropo, cine citeşte acest
articol şi nu foloseşte Flash MX ar trebui să facă rost de el. Există unele
metode noi în Flash MX şi ar fi o idee bună să le aveţi la dispoziţie.
Pentru a putea folosi un sunet în ActionScript, se foloseşte obiectul ,,Sound".
Acest obiect trebuie folosit dacă aveţi nevoie de un sunet (sunetul trebuie
să se afle în library) care să fie apelat în timpul executiei unui program,
dar nu chiar la început. Altfel, pentru un "streaming-sound" pe post de fundal
muzical, puteţi să importaţi pur şi simplu sunetul. Pentru a creea o instanţă
a acestui obiect, se foloseşte constructorul newSound.
Metoda mySound.attachSound - cu parametrul ("nume_id") - se foloseşte pentru a
ataşa sunetul nume_id obiectului Sound. Nume_id se defineşte în caseta ,,Linkage"
(pentru a o afişa se face click-dreapta pe numele sunetului din Library). Pentru
a începe redarea sunetului se foloseşte metoda Sound.start.
Asupra sunetelor de tip streaming, se pot aplica metodele Sound.getSoundTotal,
Sound.getBytesLoaded. Folosind aceste două metode, se pot determina numărul
total de bytes al sunetului, respectiv numărul de bytes încărcaţi. Comparând
rezultatele ,,întoarse" de metode, se poate afla numărul de procente în care
sunetul a fost încărcat (reţineţi însă că este vorba de un sunet streaming).
Aş vrea să mai discutăm despre alte trei lucruri: Sound.onSoundComplete, Sound.position
şi Sound.duration. Proprietatea Sound.duration defineşte durata sunetului, în
milisecunde. Sound.position întoarce numărul de milisecunde de la începutul
sunetului. Aceste două proprietăţi le sunt utile celor care dezvoltă ,,playere"
pe web, adică playere care să funcţioneze online.
Event-ul (evenimentul) Sound.onSoundComplete este invocat automat atunci când
redarea unui sunet a fost încheiată. Acest eveniment poate fi folosit pentru
a declanşa alte evenimente într-un program, pe baza încheierii redării unui
sunet. Se poate folosi şi evenimentul Sound.onLoad pentru a declanşa un alt
eveniment, atunci când încărcarea sunetului a fost terminată (din nou funcţie
utilă celor care realizează playere online).
Lucruri foarte-foarte mici
În fine, trebuie să discutăm despre comprimarea sunetelor înaintea exportului.
Cine vrea să sară peste partea aceasta, o face pe riscul lui - pe web, sunetele
se încarcă destul de greu.
Flash foloseşte mai multe modalităţi de compresie, pentru o serie de tipuri
de sunete. Aceste modalităţi de compresie trebuie înţelese perfect pentru o
aplicare corectă.
Pentru a modifica modul de compresie a unui sunet, faceţi click-dreapta pe sunetul
din "library", şi alegeţi "properties". Modalităţile de compresie sunt: Default,
ADPCM, MP3, RAW şi Speech. Default (implicit) comprimă sunetul folosind modalitatea
de compresie definită în Publish Settings. ADPCM foloseşte o serie de formule
matematice pentru a atinge rate de compresie de 4:1, reducând numărul de biţi
necesari pentru redarea unui semnal. Spre exemplu, dacă aplicăm compresia ADPCM
unui sunet pe 24 biţi, rezultatul va fi un sunet pe 8 biţi (soluţie cam radicală,
dar excelentă). MP3 este folosit atunci când vreţi să exportaţi sunete streaming
foarte lungi. De fapt, bănuiesc că sunteţi familiar cu compresia MP3. Este bine
să dezactivaţi opţiunea ,,Use Imported MP3 Quality". RAW exportă sunetul la
o anumită rată. Cea de 5 KHZ este cea mai mică, şi este total nerecomandată
pentru că rezultatul este neinteligibil. 11 KHZ este cea mai mică rată acceptabilă,
22 KHZ cea mai răspândită pe web, iar 44 KHZ este calitatea CD. În fine, Speech
reprezintă o modalitate de compresie special adaptată vorbirii.
Resurse
Evident, aici nu am intenţionat decât o prezentare generală. Pentru a afla mai
multe, puteţi să aruncaţi o privire la:
www.flashkit.com - un
sit cu mai multe tutoriale pe tema sunetelor.
www.macromedia.com -
situl Macromedia, cei care au realizat Flash. Documentaţie extrem de cuprinzătoare.
www.actionscript.org
- foarte multe tutoriale pentru avansaţi, unele legate de sunete.
|