Skrypt pokazuje jak łatwo stworzyć efekt spadającego śniegu z własnej grafiki.
1. Aby uruchomic skrypt należy posiadać dwie warstwy na filmie (actions, snieg).
2. Na warstwie 'snieg' należy stworzyć grafikę pojedynczej śnieżki oraz skonwertować ją jako klip filmowy. Nastepnie potrzeba umieścić klon klipu tuż nad obramowaniem filmu Flasha w górnym lewym rogu i nacisnąć F9 aby dodać kod do klpiu.
3. Dodajmy cały kod z listingu 1.0, zamknijmy okno skryptów oraz dodajmy nazwę instancji klipu filmowego na nazwę 'snieg'.
4. Teraz zaznacz pierwszą klatke warstwy 'actions' i otwórz okno skryptów.
5. Dodaj kod z listingu 2.0, pamiętając, że k<20 to wyświetlenie tylko 19 śnieżek na filmie, można to dowolnie modyfikować.
Kompatybilność: Flash MX 2004
Listing
//jeśli klip się załaduje
onClipEvent (load) {
//ustawienie szerokości i wysokości obraz w jakim mają spadać śnieżki
szerokoscFilmu = 238;
wysokoscFilmu = 60;
//zmienne wartości któr zmodyfikują spadający śnieg i - prędkość spadania. k - kąt spadania
i = 2-Math.random();
k = -Math.PI+Math.random()*Math.PI;
//wymiary pojedynczej śnieżki (nie mniejsza niż 5px)
this._xscale = this._yscale=5+Math.random()*100;
//przezroczystość śnieżki (nie mniejsza niż 75%)
this._alpha = 75+Math.random()*100;
//położenie x oraz y z przedziału pomiedzy wartościami podanymi na początku
this._x = -10+Math.random()*szerokoscFilmu;
this._y = -10+Math.random()*wysokoscFilmu;
}
//animacja śnieżki
onClipEvent (enterFrame) {
//składanie wszystkie w całość
//kąt pod jakim spadają śnieżki
rad += (k/180)*Math.PI;
this._x -= Math.cos(rad);
//animacja śnieżki na dół
this._y += i;
//śnieżka będzie spadała do momentu gdy nie wyjdzie poza obramowanie filmu
if (this._y>=wysokoscFilmu) {
this._y = -5;
}
//jeśli nasze śnieżki spadaly by pod ukos, wtedy podczas dotykania krawędzi by się odbijały od niej
if ((this._x>=szerokoscFilmu) || (this._x<=0)) {
this._x = -10+Math.random()*szerokoscFilmu;
this._y = -5;
}
}
//listing 2.0
//zmienna k to ilość stworzonych śnieżek w filmie
for (k=0; k<20; k++) {
duplicateMovieClip(this.snieg, "snieg"+k, k);
}
Ranga: Administrator serwisu Punktów: 0