Fun Zone = Distractie 100 %
Doriti să reactionati la acest mesaj? Creati un cont în câteva clickuri sau conectati-vă pentru a continua.

Fulgi de Zapada !

In jos

Fulgi de Zapada ! Empty Fulgi de Zapada !

Mesaj  cristiano_ronaldo Sam Mai 31, 2008 7:15 pm

Fulgi de zapada

Pentru ca ne dorim atat de mult sa ninga..."let it
snow". Nu cu animatii, ci din actionscript vom aduce fulgisori de nea
peste peisajul de mai jos.


Inceput

Incepeti prin a crea un document nou flash la
dimensiunile 550 x 400 si fundal negru. Desenati un cerc. Cam cat de
mare? Undeva intre 15 si 20 de pixeli. Folositi ca model de umplere un
degradeu radial plecand de la un albastru deschis spre un alb cu alpha
0 ca in imaginea e mai jos.





Transformati ceea ce ati desenat intr-un movieclip (tasta FCool si numiti-l fulg.

Localizati in library movieclip-ul fulg, click dreapta si alegeti optiunea Linkagei, bifati Export for action script si Export in first frame si alegeti numele fulg.



Mutati fulgul in afara scenei sau stergeti-l pur si simplu. Voi face copii ale acestui movieclip folosind attachMovie si le voi pozitiona pe scena folosind actionscript, deci nu vreau ca acest movieclip sa se vada.

Sa desenam fulgii

Creati un nou layer pe care vom pune actiunile.

Iata scriptul care deseneaza fulgii, de marimi diferite, pozitionati aleator pe scena, cu transparenta aleatoare.

init();
function init() {
var latime = Stage.width;
var inaltime = Stage.height;
var nr = 60;
for (var i = 0; i
flm = _root.attachMovie("fulg", "fulg"+i, i);
flm._x = Math.random()*latime;
flm._y = Math.random()*inaltime;
flm._alpha = 40+Math.random()*50;
flm._xscale = flm._yscale=20+Math.random()*50;
}
}



latime si inaltime reprezinta dimensiunile scenei (550, respectiv 400 in cazul nostru), iar nr reprezinta numarul de fulgi pe care i-am desenat.

Atribuirea flm = _root.attachMovie("fulg", "fulg"+i, i) nu face nimic altceva decat sa creeze un nou movieclip pe nivelul i in stiva, movieclip care apoi urmeaza a fi pozitionat aleator pe scena folosind atribuirile: flm._x = Math.random()*latime si flm._y = Math.random()*inaltime. Nu este nimic misterios in aceste atribuiri, doar trebuie avut in vedere fapul ca functia Math.random() returneaza un numar aleator pozitiv si subunitar, de aceea am inmultit aceasta valoare cu latime si respectiv inaltime.

Urmeaza stabilirea unei valori pentru transparenta iar asa cum este acum atribuirea, va puteti da seama ca flm._alpha
va avea o valoare cuprinsa intre 40 si 90. Deoarece nu vreau ca toti
fulgii sa fie de aceeasi dimensiune, am setat si proprietatile flm._xscale si flm._yscale astfel incat acestea sa se situeze intre 20 si 70 de pixeli.
Asadar:


* daca vreti sa aveti mai multi fulgi, schimbati variabila nr la o valoare mai mare.
* daca vreti fulgi mai mari sau mai mici, schimbati _xscale si _yscale
* daca vreti fulgi mai transparenti sau mai putin transparenti, schimbati proprietatea _alpha




Let it snow

Miscarea fulgilor va fi realizata de un script ce se va executa sub incidenta evenimentului onEnterFrame pentru fiecare fulg in parte si anume

flm.yy = 1+Math.random()*2;
flm.xx = -2+Math.random()*4;
flm.onEnterFrame = function() {
this._y += this.yy;
this._x += this.xx;
if (this._y>inaltime+10) {
this._y = -20;
}
if (this._x>latime+20 || this._x<-20) {
this._x = Math.random()*latime;
this._y = -20;
}

};

Deloc complicat. Pentru inceput am fixat pentru fiecare film in parte o deplasare aleatoare pe axele Ox si Oy. E vorba de flm.xx si flm.yy. Fulgii vor avea o miscare permanent de sus in jos, de aceea flm.yy are doar valori pozitive, in schimb, pentru ca nu vrem sa ninga doar de la stanga la dreapta, pentru flm.xx am permis si valori negative (flm.xx = -2+Math.random()*4)

La aparitia evenimentului onEnterFrame
se schimba pozitia filmului curent (fulgului) si se testeaza daca
acesta a iesit cumva in afara scenei, caz in care este readus intr-o
pozitie aleatoare pentru abscisa (axa Ox -atribuirea this._x = Math.random()*latime) si cu valoarea -20 pentru ordonata (axa Oy -atribuirea this._y = -20) .

Jucati-va cu aceste valori si veti obtine o ninsoare
mai mult sau mai putin personalizata. Si inca un detaliu: daca vreti sa
ninga mai repede? Simplu! Schimbati frame rate-ul pentru filmul flash.




Efectul final:VA NINGE
cristiano_ronaldo
cristiano_ronaldo
Level 2
Level 2

masculin
Numarul mesajelor : 80
Warn :
Fulgi de Zapada ! Left_bar_bleue0 / 1000 / 100Fulgi de Zapada ! Right_bar_bleue

Puncte : 0
Reputatie : 0
Data de inscriere : 22/05/2008

Sus In jos

Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum