Flash Snow ActionScript 2.0


Stiu ca este vara, dar peste cateva luni vor veni iar peste noi zapezile… trebuie sa fim pregatiti!

Ce este mai frumos decat o ninsoare linistita intr-o zi de… mai?!

Sa trecem la treaba. Vom aduce zapada, fie ca vrea, fie ca nu vrea! In Flash, desenati un cerc alb cu dimensiunea de 17×17, transformati-l in movieclip si aplicatii un filtru de Glow. Dupa aceea, selectati-l din nou si transformati-l in alt movieclip pe care il numiti fulg. In cadrul acestuia, trasati un motion tween pe timeline lung de ~200 de frame-uri. Animati fulgul astfel incat pe toata durata tween-ului acesta sa faca un singur ocol al centrului mc-ului parinte.

script snow flash

Acum suntem gata de codare. Deschidem primul frame din _root si incepem sa scriem functia care va genera ninsoarea in Flash.

i = 0;
function snow() {
	i++;
	duplicateMovieClip(_root.fulg, "fulg"+i, i+10);
	 var x_pos:Number = customRandom(0, Stage.width)
	 var y_pos:Number = customRandom(0, Stage.height)
	_root["fulg"+i]._x = x_pos;
	_root["fulg"+i]._y = y_pos-200;
}
setInterval(snow, 100);

Asa deci… consideram o variabila i egala cu 0 care va numara fulgii si va atribui un id unic fiecaruia. Variabila i creste de fiecare data cand apelam functia snow(). In cadrul functiei efectuam urmatoarele chestiuni: duplicam fulgul (fulgii astfel creati se vor numi fulg1, fulg2, fulg3 etc. si vor avea depth-ul de 11, 12, 13 etc.), pentru fiecare fulg creat vom stabili coordonatele pe axa x si y (acestea sunt random, generate de o functie pe care o vom defini mai jos), observati ca fulgul va avea acel numar random – 200 pentru a fi siguri ca va aparea in Stage destul de sus.

Intervalul creat va apela functia la fiecare 100 ms, daca vreti o ninsoare viscolita, scadeti valoarea de repetitie.

Sa vedem cum arata functia customRandom().

function customRandom(min:Number, max:Number):Number {
    var nr:Number = Math.floor(Math.random() * (max - min + 1)) + min;
    return nr;
}

Daca testati animatia acum, veti vedea ca este lipsita de dinamicitate… sa rezolvam si aceasta problema. In cadrul functiei snow() incepem sa ne jucam cu parametrii mc-urilor.

_root["fulg"+i]._xscale = 0;
_root["fulg"+i]._yscale = 0;
_root["fulg"+i].ynou = customRandom(5, 7);
_root["fulg"+i].onEnterFrame = function() {
	this._y += this.ynou;
	this._xscale += 5;
	this._yscale += 5;
	if (this._xscale > 60) {
		this._xscale = 60;
		this._yscale = 60;
	}
	if (this._y>=Stage.height) {
		removeMovieClip(this);
        }
}

In primul rand trebuie sa initiem _xscale si _yscale pentru fiecare fulg, pentru ca dupa ce modificam acesti parametrii pentru un fulg, celalalt sa poata avea alte valori. Vom jongla si cu pozitia pe axa y a fulgilor.

Cu ajutorul primei conditii ne asiguram ca nu vom avea fulgi uriasi. A doua conditie ne permite sa stergem fulgul daca a iesit din Stage, daca nu l-am sterge, acesta ar continua sa pluteasca in afara ecranului si la un moment dat ar bloca procesorul.

Sa vedem si rezultatul final al ninsorii generate de ActionScript:

C’ya next time!



Ti-a placut articolul Flash Snow ActionScript 2.0?

Ai nevoie de rezolvarea unei probleme la informatica?

Iti recomandam si urmatoarele articole:

Discuta articolul Flash Snow ActionScript 2.0



Contul tau

Categorii

Mozku Network

Ne gasesti si pe Facebook

Articole noi

Fisiere populare

  • Proiect Atestat Informatica Visual FoxPro (439)
  • Twitter Patterns (202)
  • Flash Newsletter (126)
  • Baza de date auto revizuita (99)
  • hitTest Flash (99)

Marcaje articole