ActionScript 3: الرسوم المتحركة البرمجية السلسة

StackOverflow https://stackoverflow.com/questions/929749

  •  06-09-2019
  •  | 
  •  

سؤال

أريد تحريك كائنات movieveclips / Sprite بشكل ملائم قدر الإمكان. ومع ذلك، فإن الطريقة الوحيدة التي تعمل حتى الآن تضع قانون الحركة في معالج حدث Enterframe. هناك مشكلة واحدة في هذا النهج: عندما يكون التأريذ على جهاز معين أقل من التأريض المطلوب ثم يبطئ اللعبة بأكملها. أريد أن أكون قادرا على القيام بذلك بطريقة مستقلة في الوقت المناسب.

هل كانت مفيدة؟

المحلول

هناك طريقتان للقيام بالرسوم المتحركة البرنامجية داخل مشغل الفلاش. أول طلبت بالفعل باستخدام OnEnterFrame. ومع ذلك، كما قد لاحظت بالفعل، للحصول على رسوم متحركة ناعمة تحتاج إلى زيادة معدل الإطارات الإجمالي لفيلمك. سيزيد هذا أيضا زيادة تحميل وحدة المعالجة المركزية لفترة الزمن التي يديرها SPU بأكملها. هذا ليس شيئا تريده دائما.

الطريقة الأخرى للقيام بالرسوم المتحركة البرنامجية هي باستخدام جهاز توقيت. ضمن معالج الموقت، من الممكن استدعاء وظيفة باسم updateAfterEvent والتي ستقوم بتحديث الشاشة المستقلة عن FPS التي تضعها ل SWF. لذلك، استخدام مؤقت يترك بوابة للقيام بالرسوم المتحركة السلسة داخل مشغل الفلاش دون زيادة معدل الإطارات الإجمالي ل SWF.

منذ عامين أو نحو ذلك، حددت لإنشاء مكتباتي Tween الخاصة بي للفلاش (بسبب إحباطاتي مع مكتبات Tween الحالية المتوفرة). لقد أصدرتها تحت الاسم كوربوين وتتيح لك هذه المكتبة، من بين أمور أخرى، اختر نوع الرسوم المتحركة التي تفضلها لكل فرد توين. في صفحة الوثائق أعطي مثال من الفرق بين الرسوم المتحركة القائمة على الإطار والوقت. يمتد المثال SWF على تلك الصفحة في 12 إطارا في الثانية، ولكن كما ترى، فإن الدائرة السفلية Twene أكثر سلما أكثر سلاسة لأنها تسيطر عليها جهاز مؤقت يقوم بادئة 60 إطارا في الثانية ويقوم بتحديث الشاشة التي تم الاعتماد عليها من معدل إطار SWF. ضع في اعتبارك أن هذا حتى القراد الموقت عند 60 إطارا في الثانية في الواقع لن يكون لاعب الفلاش أبدا من تحقيق معدل الإطار هذا. ومع ذلك، سيحاول تحقيق معدل الإطار هذا الذي ينتج عنه الرسوم المتحركة الشاملة أكثر سلاسة.

لسوء الحظ، حتى الآن لم أتمكن من إصدار نسخة 1.0 من مكتبتي، ولكن كما أعرف أنها مستقرة جدا. أنت أكثر من موضع ترحيب لاستخدامها بأي طريقة ترى مناسبا. لقد استخدمت كورتون في العديد من الإنتاج التجاري بما في ذلك هذا الذي فعلناه شارع جورج بنك هنا في أستراليا.

نصائح أخرى

فيما يلي بعض مكتبة الرسوم المتحركة القائمة على أساس بعض:

tweenmax.

توينير

كلاهما يعمل بشكل جيد، وينبغي أن يساعدك في ما تحتاجه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top