Učinek vetra z Flash CS3 Math.random ()
Zdaj, ko je v naši bliskavi padla snežinkaR sistem delcev, nekoliko spremenimo kodo ActionScript 3. Naš kosmič le pade naravnost navzdol. Ampak, če vetra popolnoma ni, večina kosmičev potuje po poševnem pasu. Zato uporabimo nekaj matematike, da se naša luska nekoliko premakne v desno, ko pade. Če želimo dodati več realizma, želimo, da se količina horizontalnega gibanja spremeni, ko snežinka naredi pot navzdol.

Ne pozabite, da smo v eni izmed naših prejšnjih vaj v tej seriji kosmiče postavili na različne položaje vodoravno vzdolž vrha odra. To smo storili tako, da smo za vsak kosmič postavili različne vrednosti za položaj X. Tako lahko v tej vadnici ponovno uporabimo isto lastnost _Snowflake.x za nadzor horizontalnega gibanja v animaciji.

Drugič, ko smo ustvarili svojo lusko, smo začetni položaji X in Y kosmiča postavili na naključno število.

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

Za nadzor nad količino naključnega horizontalnega gibanja lahko uporabimo isti Math.random (). Ali uganete, kaj sledi?

Vemo, da na vsakem kadru našega filma Flash imenujemo funkcijo sneženja.

stage.addEventListener (Event.ENTER_FRAME, snežne padavine);

Ta funkcija poveča lastnost_Snowflake.y za 10 za vsak okvir. To je tisto, kar kosmiček premakne po odru.

_Snowflake.y + = 10;

Toda to je prehitro, da bi videli tanko vodoravno gibanje, ki mu bomo dodali naslednje. Torej, nekoliko upočasnimo, tako da spremenimo 10 v 5.

_Snowflake.y + = 5;

Zdaj lahko isto kodo uporabimo za premikanje kosmiča vodoravno v desno. Vse kar moramo storiti je, da spremenimo the_Snowflake.y v_Snowflake.x.

_Snowflake.x + = 10;

Zdaj bo snežinka premaknila 10 slikovnih pik v desno in 5 pik navzdol ob vsakem kadru v našem filmu Flash. Vendar bi bilo bolj realistično, če bi bilo vodoravno gibanje snežinke bolj naključno, saj je to pot navzdol po odru. To lahko storimo tako, da 10 postavimo z naključnim številom med 0 in 9. Za to bomo uporabili Math.random ().

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

Nato dodamo to novo kodo funkciji sneženja in jo dobimo.

če (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, snežne padavine); }
drugače
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

Toda zdaj, ko kosmiček premikamo v desno, bo morda sčasoma presegel desno stran zaslona. Ne pozabite, da smo snežinko ustavili, če je padla pod oder.

če (_Snowflake.y> 370)

Lahko ga tudi ustavimo, če preseže desni del odra. Dodajmo to k naši pogojni izjavi. Ker želimo, da se animacija ustavi, če sta resnična ali ALI drugi od teh pogojev, lahko uporabimo || operater med obema pogojema v stavku if.

če (_Snowflake.y> 370 || _Snowflake.x> 550)

Če je eden od teh pogojev resničen, Flash odstrani poslušalca dogodkov ENTER_FRAME.

Tu je naša nova koda.
stage.addEventListener (Event.ENTER_FRAME, snežne padavine);

var _Snowflake: mcSnowflake;

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

funkcija sneženje (dogodek: dogodek): nična
{
če (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, snežne padavine); }
drugače
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Ko boste snemali svoj film, bo snežinka zdaj spreminjala svoje vodoravno gibanje, ko pade na dno odra. Shranite snežni prizor kot SnowScene6.fla.

Avtorske pravice 2018 Adobe Systems Incorporated. Vse pravice pridržane. Posnetki zaslona izdelkov Adobe so bili ponatisnjeni z dovoljenjem 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, Prispevaj, Captivate, Flash Catalyst in Flash Paper so ali so [a] registrirana blagovna znamka (-e) ali blagovna znamka Adobe Systems Incorporated v Združenih državah Amerike in / ali drugih državah.