אפקט רוח עם Flash CS3 Math.random ()
עכשיו כשפתית השלג שלנו נופלת בפלאש שלנור מערכת החלקיקים, בואו נשנה מעט את קוד ה- ActionScript 3. הפתית שלנו פשוט נופלת ישר למטה. אבל, אלא אם כן אין רוח ממש, מרבית הפתיתים נוסעים במלוכסן. אז בוא נשתמש במתמטיקה כדי לגרום לפתית שלנו לנוע ימינה מעט עם נפילתה. כדי להוסיף ריאליזם נוסף, אנו רוצים שכמות התנועה האופקית תשתנה ככל שפתית השלג תעשה את דרכה במורד הבמה.

זכור כי באחת מההדרכות הקודמות שלנו בסדרה זו, הנחנו פתיתים במיקומים שונים אופקית בראש הבמה. עשינו זאת על ידי קביעת ערכים שונים עבור מיקום ה- X לכל פתית. אז במדריך זה, נוכל להשתמש באותו נכס _Snowflake.x שוב כדי לשלוט על התנועה האופקית בהנפשה.

שנית, כשיצרנו את הפתית שלנו, קבענו את עמדות ה- X וה- Y הראשוניות של הפתית למספר אקראי.

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

אנו יכולים להשתמש באותו Math.random () כדי לשלוט בכמות התנועה האופקית האקראית. ניחשתם מה יבוא הלאה?

אנו יודעים שעל כל פריים בסרט הפלאש שלנו אנו קוראים פונקציית שלג.

stage.addEventListener (אירוע .ENTER_FRAME, שלג);

פונקציה זו מגדילה את המאפיין_Snowflake.y ב- 10 עבור כל פריים. זה מה שמניע את הפתית במורד הבמה.

_Snowflake.y + = 10;

אבל זה מהיר מכדי לראות את התנועה האופקית העדינה שנוסיף בהמשך. אז בואו להאט את זה קצת על ידי שינוי ה- 10 ל- 5.

_Snowflake.y + = 5;

כעת נוכל להשתמש באותו קוד בכדי להזיז את הפתית אופקית ימינה. כל שעלינו לעשות זה לשנות את_Snowflake.y ל-_Snowflake.x.

_Snowflake.x + = 10;

כעת פתית השלג תעביר 10 פיקסלים ימינה ו -5 פיקסלים כלפי מטה בכל פריים בסרט הפלאש שלנו. עם זאת, זה יהיה יותר מציאותי אם התנועה האופקית של פתית השלג הייתה אקראית יותר מכיוון שהיא הופכת את דרכה למטה על הבמה. אנו יכולים לעשות זאת על ידי החלפת ה- 10 במספר אקראי בין 0 ל 9. אנו נשתמש ב- Math.random () כדי לעשות זאת.

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

בשלב הבא, אנו מוסיפים קוד חדש זה לפונקצית השלג ונשיג את זה.

אם (_Snowflake.y> 370)
{stage.removeEventListener (אירוע .ENTER_FRAME, שלג); }
אחר
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

אבל עכשיו כשאנחנו מעבירים את הפתית ימינה, זה עשוי בסופו של דבר לחרוג מהצד הימני של המסך. זכור שעצרנו את פתית השלג אם הוא ייפול מתחת לבמה.

אם (_Snowflake.y> 370)

אנחנו יכולים גם לעצור את זה אם זה יעבור לצד הימני של הבמה. בואו נוסיף זאת להצהרה המותנית שלנו. מכיוון שאנחנו רוצים שהאנימציה תיפסק אם התנאי הראשון או השני של התנאים האלה נכונים, נוכל להשתמש ב || מפעיל בין שני התנאים בהצהרת if.

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

אם אחד מהתנאים הללו נכון, Flash יסיר את מאזין האירועים ENTER_FRAME.

הנה הקוד החדש שלנו.
stage.addEventListener (אירוע .ENTER_FRAME, שלג);

var _Snowflake: mcSnowflake;

_Snowflake = mcSnowflake חדש ();
addChild (_Snowflake);
_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

פונקצית שלג (אירוע: אירוע): בטל
{
if (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (אירוע .ENTER_FRAME, שלג); }
אחר
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


כשאתה שולח טקסט לסרט שלך, פתית השלג תשתנה כעת את תנועתה האופקית כשהוא נופל לתחתית הבמה. שמור את סצנת השלג שלך כ- SnowScene6.fla.

זכויות יוצרים 2018 Adobe Systems Incorporated. כל הזכויות שמורות. צילומי מסך של מוצרי אדובי הודפסו מחדש עם אישור של Adobe Systems Incorporated. אדובי, פוטושופ, אלבום פוטושופ, אלמנטים פוטושופ, אילוסטרייטור, InDesign, GoLive, Acrobat, Cue, Premiere Pro, אלמנטים בכורה, גשר, After Effects, InCopy, Dreamweaver, Flash, ActionScript, זיקוקים, לתרום, לכידת, Flash Catalyst ונייר פלאש. הוא / הם [a] סימנים מסחריים רשומים או סימנים מסחריים של Adobe Systems Incorporated בארצות הברית ו / או במדינות אחרות.