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

Tutorial: Realizarea unui ceas în Flash MX

Ioan Alexandru Lazăr

download: swf, fla

Foarte mulți web-designeri se confruntă cu o problemă stringentă: afișarea orei curente. Folosirea JavaScript dă rezultate neimpresionante ca aspect, iar applet-urile Java, deși pot arăta cât de cât decent, se încarcă foarte greu. Odată cu creșterea vitezei de transfer, afișarea orei se poate realiza în Flash, foarte ușor și cu un aspect foarte plăcut.

Pentru ca ceasul să funcționeze (adică să își miște limbile, așa cum trebuie) este nevoie doar de câteva fișiere grafice și câteva linii de cod foarte, foarte simple. Acest tutorial cere doar cunoștințe de bază de Action Script și Flash, iar programele pe care eu le-am folosit au fost Flash MX (pentru scenă) și Fireworks (pentru ceas).

Fișierele grafice se pot realiza fără probleme în Photoshop sau în alt program de grafică. Recomandarea mea este, totuși, Macromedia Fireworks, care are o serie de stiluri predefinite și funcții perfecte pentru un asemenea scop. În orice caz, este nevoie de: imaginea ceasului (fără limbi) - care va fi importată ca "Movie Clip" in Flash MX, și imaginile celor trei limbi (orar, minutar și secundar), ce vor deveni Movie Clip-uri.

Pentru a ușura cât mai mult posibil munca de management a scenei (și eventualele adăugiri ulterioare), este bine să împărțiți scena în mai multe layere, câte unul pentru fiecare element, plus unul pentru acțiuni (care va fi lăsat gol).

Primul lucru care trebuie să îl faceți este împărțirea în layere a scenei. În cazul acestui tutorial, ordinea layerelor a fost (de sus în jos): "Acțiuni", "Orar", "Minutar", "Secundar", "Ceas". Creați apoi câte două cadre-cheie alăturate în fiecare layer (selectați cadrul imediat următor primului, clic dreapta pe mouse și alegeți opțiunea "Insert frame".

În layer-ul Ceas, importați imaginea ceasului (în ambele cadre-cheie). Urmează apoi să creați imaginile limbilor. Este nevoie de câte o imagine pentru orar, minutar și secundar. Imaginea limbilor se poate realiza fără probleme, chiar și din Flash, cu ajutorul instrumentelor de desenare. Pentru a realiza imaginea unei limbi, apăsați Ctrl+F8 (sau mergeți pe Insert>New Symbol), alegeți Movie Clip, și apoi editați acest nou movie-clip până ajungeți la forma dorită. Atenție: capătul de JOS al limbii trebuie să fie exact în centrul Movie Clip-ului. Țineți seama și de următoarele lucruri: în primul rând, orarul este limba cea mai mică, iar secundarul, cea mai mare. Gândiți-vă la faptul că limbile trebuie să fie cel mult egale cu raza cadranului ceasului, altfel vor ieși din cadran. Și, în mod sigur, nu vreți asta. De asemenea, fiți siguri că, după ce ați terminat editarea unei limbi, completați câmpul "Instance Name" din tab-ul Properties cu numele potrivit (în acest tutorial, am folosit instance name-urile: "Orar" pentru orar, "Minutar" pentru minutar și "Secundar" pentru secundar)

După ce ați terminat imaginea ceasului (cu limbi cu tot), urmează singura parte mai grea a acestui tutorial: programarea acțiunilor. Atenție: am spus "mai grea" și nu "foarte grea". Cine a mai lucrat în JavaScript nu va avea nici o problemă, dar nici cei care nu au lucrat cu JavaScript nu se vor simți stingheriți.

Haideți, totuși, să facem o scurtă pauză și să vedem (concret) ce trebuie făcut. Pentru ca limbile să se miște corect, trebuie să găsim mai întâi o soluție pentru a citi data calculatorului. Acest lucru se face foarte ușor, prin intermediul comenzii new Date(). Apoi, limbile trebuie să se și miște. Pentru asta am spus că este nevoie de două cadre-cheie, pentru că, în cazul în care ați folosi un singur frame, limbile nu s-ar mai mișca. Apoi, pentru a "ordona" limbilor să se miște, vom ține cont de modul în care ele se mișcă în realitate. Pentru limbi, se folosește funcția MovieClip._rotation, care definește numărul de grade cu care se mișcă limbile după fiecare unitate de timp.

Așadar, faceți click dreapta pe primul frame din layer-ul cel mai de sus (cel care conține acțiunile), și apoi urmează să scrieți codul:

//————————------------------------------
Data = new Date();//citeste data curenta
_root.Orar._rotation = Data.getHours()*30+(Data.getMinutes()/2);
//roteste orarul...
_root.Minutar._rotation = Data.getMinutes()*6+(Data.getSeconds()/10);
//roteste minutarul
_root.Secundar._rotation = Data.getSeconds()*6;
//in fine, roteste secundarul. Daca nu folositi secundar, puteti scoate linia fara probleme
//——————-------------------------------

Selectați apoi al doilea cadru-cheie și introduceți următoarea secvență:

//———————————————--------------------------
gotoAndPlay(1);
//——————————————————————------------------

Încercați acum să testați scena. Dacă ați executat totul corect, ceasul funcționează și trebuie să indice ora care este arătată și în System Tray (dreapta-jos, pe taskbar). Dacă ceasul refuză, totuși, cu încăpățânare să funcționeze, ar fi unele lucruri ce ar trebui verificate. În primul rând, asigurați-vă că, după ce ați creat limbile ceasului, ați completat câmpul "Instance Name" și că, atunci când ați scris codul Action Script, ați folosit instance name-ul respectiv. În al doilea rând, fiți sigur că nu ați omis vreo porțiune de cod. Pentru orice eventualitate, țineți fereastra "Output" activă cât timp testați ceasul. Și, nu în ultimul rând, verificați că nu ați omis includerea celui de-al doilea cadru-cheie, pentru că, dacă nu îl includeți, limbile ceasului nu se vor mișca.

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