Ефект на вятъра с Flash CS3 Math.random ()
Сега, когато снежинката ни пада в нашия FlashR система от частици, нека малко да променим ActionScript 3 кода. Нашата люспа просто пада направо надолу. Но, освен ако няма абсолютно никакъв вятър, повечето люспи се движат надолу при наклон. Затова нека използваме малко математика, за да накараме люспите ни да се движат леко вдясно, докато пада. За да добавим повече реализъм, искаме размерът на хоризонталното движение да се промени, тъй като снежинката прави път надолу по сцената.

Не забравяйте, че в един от нашите по-ранни уроци от тази серия, ние поставихме люспи на различни позиции хоризонтално по върха на сцената. Направихме това, като зададохме различни стойности за позицията X за всяка люспеста. Така че в този урок, можем отново да използваме същото свойство _Snowflake.x, за да контролираме хоризонталното движение в анимацията.

Второ, когато създадохме нашата люспеста, зададохме началните позиции на люспи X и Y на произволно число.

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

Можем да използваме същия Math.random (), за да контролираме количеството на произволно хоризонтално движение. Предполагате ли какво следва?

Знаем, че на всеки кадър от нашия филм Flash наричаме функцията снеговалеж.

stage.addEventListener (Event.ENTER_FRAME, снеговалеж);

Тази функция увеличава свойството__Snowflake.y с 10 за всеки кадър. Това е, което движи люспата по сцената.

_Snowflake.y + = 10;

Но това е твърде бързо, за да видим финото хоризонтално движение, което ще добавим следващо. Така че, нека го забавим малко, като променим 10 на 5.

_Snowflake.y + = 5;

Сега можем да използваме същия код, за да преместим люспите хоризонтално вдясно. Всичко, което трябва да направим, е да променим the_Snowflake.y на_Snowflake.x.

_Snowflake.x + = 10;

Сега снежинката ще премести 10 пиксела вдясно и 5 пиксела надолу на всеки кадър в нашия филм на Flash. Но би било по-реалистично, ако хоризонталното движение на снежинката беше по-случайно, тъй като това прави път надолу по сцената. Можем да направим това, като заместим 10 с произволно число между 0 и 9. Ще използваме Math.random (), за да направим това.

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

След това добавяме този нов код към функцията за снеговалеж и получаваме този.

ако (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, снеговалеж); }
още
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

Но сега, когато преместваме люспестата вдясно, тя в крайна сметка може да излезе от дясната страна на екрана. Помнете, че спряхме снежинката, ако тя падне под сцената.

ако (_Snowflake.y> 370)

Можем и да го спрем, ако излезе извън дясната страна на сцената. Нека добавим това към нашето условно изявление. Тъй като искаме анимацията да спре, ако първото ИЛИ второто от тези условия е вярно, можем да използваме || оператор между двете условия в оператора if.

ако (_Snowflake.y> 370 || _Snowflake.x> 550)

Ако едно от тези условия е вярно, Flash ще премахне слушателя на събитията ENTER_FRAME.

Ето нашия нов код.
stage.addEventListener (Event.ENTER_FRAME, снеговалеж);

var _Snowflake: mcSnowflake;

_Snowflake = нов mcSnowflake ();
addChild (_Snowflake);
_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

функция снеговалеж (събитие: събитие): невалиден
{
ако (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, снеговалеж); }
още
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Когато изпращате текст на филма си, снежинката вече ще променя хоризонталното си движение, докато пада до дъното на сцената. Запазете вашата сцена на сняг като SnowScene6.fla.

Copyright 2018 Adobe Systems Incorporated. Всички права запазени. Екран (и) на екрана с продукти на Adobe препечатани с разрешение от 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 и Flash Paper е или са [a] регистрирана търговска марка (и) или търговска марка (и) на Adobe Systems Incorporated в Съединените щати и / или други страни.


Инструкции Видео: SUPER-SHOWDOWN-BOWL! - TOON SANDWICH (Април 2024).