تأثير الرياح مع Flash CS3 Math.random ()
الآن لدينا سقوط ندفة الثلج لدينا في فلاش لديناR نظام الجسيمات ، دعونا تعديل رمز 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 ، تساقط الثلوج) ؛

تعمل هذه الوظيفة على زيادة خاصية_سنوفليك.ي بمقدار 10 لكل إطار. هذا هو ما يحرك تقشر أسفل المسرح.

_Snowflake.y + = 10 ؛

لكن هذا سريع للغاية بالنسبة لنا لرؤية الحركة الأفقية الدقيقة التي سنضيفها بعد ذلك. لذلك ، دعنا نبطئ الأمر قليلاً عن طريق تغيير الـ 10 إلى 5.

_Snowflake.y + = 5 ؛

الآن يمكننا استخدام نفس الكود لتحريك الرقاقة أفقياً إلى اليمين. كل ما نحتاج إليه هو تغيير the_Snowflake.y to_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، snowfall)؛ }
آخر
{_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؛

وظيفة تساقط الثلوج (الحدث: الحدث): باطلة
{
if (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME، snowfall)؛ }
آخر
{_Snowflake.y + = 5؛ _Snowflake.x + = Math.random () * 10؛ }
}


عندما ترسل رسالة نصية لفيلمك ، ستغير ندفة الثلج الآن حركتها الأفقية حيث تقع في أسفل المسرح. حفظ مشهد الثلج الخاص بك كما SnowScene6.fla.

حقوق النشر 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 في الولايات المتحدة و / أو البلدان الأخرى.


تعليمات الفيديو: قالب 4 لوجوهات احترافية مع المؤثرات الصوتية رائعة لللافتر افكت CS4 - CC 2014 (أبريل 2024).