Efekt vetra s technológiou Flash CS3 Math.random ()
Teraz, keď v našom blesku spadá naša snehová vločkaR v časticovom systéme, upravme trochu kód jazyka ActionScript 3. Naša vločka jednoducho padá priamo nadol. Pokiaľ však nie je absolútne žiaden vietor, väčšina vločiek sa šikmo pohybuje. Použime teda nejakú matematiku, aby naša vločka mierne klesla doprava, keď padá. Ak chcete pridať viac realizmu, chceme, aby sa objem horizontálneho pohybu zmenil, keďže snehová vločka robí cestu dolu.

Pamätajte, že v jednom z našich predchádzajúcich návodov v tejto sérii sme vločky umiestnili vodorovne pozdĺž hornej časti javiska na rôzne pozície. Urobili sme to nastavením rôznych hodnôt pre polohu X pre každú vločku. V tomto návode teda môžeme znova použiť tú istú vlastnosť _Snowflake.x na ovládanie horizontálneho pohybu v animácii.

Po druhé, keď sme vytvorili vločku, nastavili sme počiatočné polohy X a Y vločky na náhodné číslo.

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

Rovnakú Math.random () môžeme použiť na kontrolu množstva náhodného horizontálneho pohybu. Hádate, čo bude ďalej?

Vieme, že v každom snímku nášho filmu Flash nazývame funkciu sneženia.

stage.addEventListener (Event.ENTER_FRAME, snowfall);

Táto funkcia zvyšuje vlastnosť _Snowflake.y o 10 pre každý rámec. To je to, čo posúva vločky po javisku.

_Snowflake.y + = 10;

Ale to je príliš rýchle na to, aby sme videli jemný horizontálny pohyb, ktorý pridáme ďalej. Poďme to trochu spomaliť zmenou 10 na 5.

_Snowflake.y + = 5;

Teraz môžeme použiť ten istý kód na pohyb vločky horizontálne doprava. Všetko, čo musíme urobiť, je zmeniť the_Snowflake.y na_Snowflake.x.

_Snowflake.x + = 10;

Teraz sa snehová vločka posunie o 10 pixelov doprava a 5 pixelov dole na každý obrázok v našom filme Flash. Bolo by však realistickejšie, keby horizontálny pohyb snehovej vločky bol náhodnejší, pretože to robí cestu dolu. Môžeme to urobiť tak, že 10 nahradíme náhodným číslom medzi 0 a 9. Na to použijeme Math.random ().

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

Ďalej pridáme tento nový kód do funkcie sneženia a dostaneme ho.

ak (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, snowfall); }
inak
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

Ale teraz, keď pohybujeme vločkou doprava, môže to nakoniec ísť za pravú stranu obrazovky. Nezabudnite, že sme zastavili snehovú vločku, ak klesla pod pódium.

ak (_Snowflake.y> 370)

Môžeme to tiež zastaviť, ak to presiahne pravú stranu javiska. Pridajte to k nášmu podmienečnému vyhláseniu. Pretože chceme, aby sa animácia zastavila, ak je splnená prvá alebo druhá z týchto podmienok, môžeme použiť || medzi dvoma podmienkami uvedenými vo vyhlásení if.

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

Ak je splnená niektorá z týchto podmienok, program Flash odstráni poslucháča udalostí ENTER_FRAME.

Tu je náš nový kód.
stage.addEventListener (Event.ENTER_FRAME, snowfall);

var _Snowflake: mcSnowflake;

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

funkčné sneženie (udalosť: udalosť): neplatné
{
ak (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, snowfall); }
inak
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Pri písaní textu filmu teraz snehová vločka zmení svoj horizontálny pohyb, keď klesne na dno javiska. Uložte svoju scénu snehu ako SnowScene6.fla.

Copyright 2018 Adobe Systems Incorporated. Všetky práva vyhradené. Snímky obrazovky produktov spoločnosti Adobe znova vytlačené so súhlasom spoločnosti Adobe Systems Incorporated. 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 a Flash Paper je / sú [a] registrované ochranné známky alebo ochranné známky spoločnosti Adobe Systems Incorporated v USA a / alebo iných krajinách.