Szélhatás a Flash CS3 használatával Math.random ()
Most, hogy hópehelyünk esik a vakubaR részecskerendszer, módosítsuk egy kicsit az ActionScript 3 kódot. A pehelyünk egyenesen leesik. De ha nincs teljesen szél, a legtöbb pehely ferdén halad le. Tehát használjunk néhány matematikai értéket, hogy a pehelyünk kissé jobbra mozogjon, amikor esik. További valósághűség hozzáadásához azt akarjuk, hogy a vízszintes mozgás mennyisége megváltozzon, mivel a hópehely miatt a színpad leereszkedik.

Ne feledje, hogy az ebben a sorozatban szereplő egyik korábbi oktatóanyagban a különböző színű helyekre pehelyeket fektetünk vízszintesen a színpad teteje mentén. Ezt úgy végeztük, hogy az egyes pelyhekhez az X-pozícióhoz különböző értékeket állítottunk be. Tehát ebben az oktatóprogramban ugyanazt a _Snowflake.x tulajdonságot is felhasználhatjuk az animáció vízszintes mozgásának vezérlésére.

Másodszor, amikor létrehoztuk a pehelyünket, akkor a pehely kezdeti X és Y helyzetét véletlen számra állítottuk.

_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

Ugyanazt a Math.random () -ot használhatjuk a véletlenszerű vízszintes mozgás mennyiségének ellenőrzésére. Gondolod, mi jön ezután?

Tudjuk, hogy a Flash film minden egyes képkockáján a hóesés funkciót hívjuk.

stage.addEventListener (Event.ENTER_FRAME, havazás);

Ez a funkció minden képkockánál 10-rel növeli a_Snowflake.y tulajdonságot. Ez mozgatja a pelyheket a színpadon.

_Snowflake.y + = 10;

De ez túlságosan gyors ahhoz, hogy észrevegyük a finom vízszintes mozgást, amelyet hozzá fogunk adni. Tehát lassítsuk le egy kicsit úgy, hogy a 10-et 5-re változtatjuk.

_Snowflake.y + = 5;

Most ugyanazt a kódot használhatjuk a pehely vízszintes irányba jobbra mozgatására. Csak annyit kell tennünk, hogy megváltoztassuk a_Snowflake.y fájlt_Snowflake.x fájlra.

_Snowflake.x + = 10;

Most a hópehely 10 képpontot jobbra és 5 képpont lefelé mozgatja a Flash film minden egyes képkockájánál. De realisztikusabb lenne, ha a hópehely vízszintes mozgása véletlenszerűbb lenne, mivel ez a színpad felé vezet. Ezt megtehetjük úgy, hogy a 10-et egy 0 és 9 közötti véletlen számmal helyettesítjük. Ehhez a Math.random () -ot fogjuk használni.

_Snowflake.x + = Math.random () * 10;

Ezután hozzáadjuk ezt az új kódot a havazás függvényhez, és megkapjuk ezt.

if (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, havazás); }
más
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

De most, amikor jobbra mozgatjuk a pehelyt, elképzelhető, hogy túlmutat a képernyő jobb oldalán. Ne feledje, hogy megállítottuk a hópehelyet, ha az a színpad alá esett.

if (_Snowflake.y> 370)

Azt is megállíthatjuk, ha túllép a színpad jobb oldalán. Adjuk hozzá ezt a feltételes kijelentésünkhöz. Mivel azt akarjuk, hogy az animáció leálljon, ha ezen feltételek közül az első vagy a második teljesül, akkor használhatjuk a || operátor az if utasításban szereplő két feltétel között.

if (_Snowflake.y> 370 || _Snowflake.x> 550)

Ha ezen feltételek valamelyike ​​teljesül, a Flash eltávolítja az ENTER_FRAME eseményfigyelőt.

Itt van az új kódunk.
stage.addEventListener (Event.ENTER_FRAME, havazás);

var _Snowflake: mcSnowflake;

_Snowflake = új mcSnowflake ();
addChild (_Snowflake);
_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

funkcionális havazás (esemény: esemény): érvénytelen
{
if (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, havazás); }
más
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Amikor szöveget ad a filmnek, a hópehely most megváltoztatja vízszintes mozgását, amikor a színpad aljára esik. Mentse el a hó jelenetét a SnowScene6.fla néven.

Szerzői jog 2018 Adobe Systems Incorporated. Minden jog fenntartva. Az Adobe termék képernyőképe (i) újra kinyomtatva az Adobe Systems Incorporated engedélyével. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst és Flash Paper vagy bejegyzett védjegy (ek) vagy az Adobe Systems Incorporated védjegye (i) az Egyesült Államokban és / vagy más országokban.