Loading:


Tworzenie spadającego losowego śniegu we Flashu [AS 2]

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



Napisz Artykuł

Listing

//listing 1.0

//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);
}


kontakt w sprawie miejsca



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38423
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-19 v.1.5 | design: diviXdesign & rainbowcolors