Оптимизация анимации системы частиц Flash CS3
Теперь, когда у нас есть Flashр Анимация снегопада в системе частиц CS3 работает точно так, как мы хотим, пришло время оптимизировать программный код снежной сцены. Если вы протестировали анимацию, которую мы написали в предыдущих уроках, вы, вероятно, заметили, что через некоторое время анимация имеет тенденцию загружать ресурсы вашего компьютера. В этом уроке мы рассмотрим несколько способов сделать анимацию более эффективной.

Теперь, когда код стоит, мы используем одного прослушивателя событий для прослушивания каждого нового кадра анимации. С каждым новым кадром функция снежинки (обработчик событий) создает новую снежинку и добавляет эту снежинку в список отображения Flash. Далее мы используем Math.random () для рандомизации положения и альфа-свойств этой снежинки. Мы используем второй приемник событий для вызова функции снегопада, опять же с каждым новым кадром. Функция снегопада проверяет, переместилась ли снежинка за правый или нижний край сцены. Если это так, мы удаляем второго прослушивателя событий, который повторяет функцию снегопада. Это приводит к тому, что одна снежинка перестает падать, а другие продолжают падать. Повторение функции снежинки создает анимацию снегопада. Теперь нам нужно изменить код, чтобы он стал более эффективным.

Способ первый

Первый метод требует добавления только одной строки кода в нашу программу. У нас уже есть условный оператор внутри функции снегопада, который проверяет, вышла ли снежинка за пределы сцены, и, если это так, удаляет прослушиватель событий и предотвращает падение снежинки.
Снежинка перестает двигаться, но она все еще видна в нижней части сцены. Поскольку он по-прежнему отображается и отображается в списке отображения, Flash по-прежнему расходует ресурсы на эту снежинку. Если мы удалим снежинку из списка отображения, это освободит ресурсы, и анимация будет более эффективной. Чтобы удалить снежинки, которые нам больше не нужны, в списке отображения, мы можем добавить код removeChild в условный оператор.

if (_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, элементы Photoshop, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, фейерверки, содействие, увлечение, Flash Catalyst и Flash Paper является или является [a] зарегистрированным товарным знаком (-ами) или товарным знаком (-ами) Adobe Systems Incorporated в США и / или других странах.