Оптимизиране на анимирана система за частици Flash CS3
Сега, когато имаме FlashR CS3 анимация за снеговалеж от частици, работеща точно както ние искаме, време е да оптимизираме програмния код на сцената за сняг. Ако сте тествали анимацията, която сме писали в предишните уроци, вероятно сте забелязали, че след време анимацията има тенденция да зададе ресурсите на вашия компютър. В този урок ще разгледаме няколко начина да направим анимацията по-ефективна.

Тъй като кодът сега стои, използваме един слушател на събития, за да слушаме всеки нов кадър от анимацията. С всеки нов кадър функцията на снежинката (обработващ събитията) създава нова снежинка и добавя тази снежинка към списъка с флаш дисплеи. След това използваме Math.random (), за да рандомизираме позиционните и алфа свойства на тази снежинка. Използваме втори слушател на събития, за да извикаме функцията за снеговалеж, отново с всеки нов кадър. Функцията за снеговалеж проверява дали снежинката се е преместила извън десния или долния край на сцената. Ако е така, премахваме втория слушател на събития, който повтаря функцията за снеговалеж. Това причинява едната снежинка да спре да пада, докато другата снежинка продължава да пада. Повторението на функцията за снежинка създава анимация за снеговалеж. Това, което сега трябва да направим, е да променим кода, така че да е по-ефективен.

Метод първи

Първият метод изисква добавянето на само един ред код към нашата програма. Вече имаме условно изявление във функцията за снеговалеж, която проверява дали снежинката е излязла извън сцената и, ако е така, премахва Слушателя на събития и спира снежинката от падане.
Снежинката спира да се движи, но все още се вижда в долната част на сцената. Тъй като все още се вижда и все още е в списъка с дисплеи, Flash все още харчи ресурси за тази снежинка. Ако премахнем снежинката от списъка с дисплеи, тя ще освободи ресурсите и анимацията ще бъде по-ефективна. За да премахнем снежинките, които вече не ни трябват в списъка с дисплеи, можем да добавим код RemoveChild към условното изявление.

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


Когато тествате филма си, снежинките изчезват, когато стигнат до десния или долния край на сцената и анимацията е по-ефективна.

Следващ →

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 в Съединените щати и / или други страни.


Инструкции Видео: Мария Апостолова.Какво е визуализиране... (Април 2024).