Есть два способа сделать программную анимацию в Flash Player. Первое, что вы уже указали, используя onEnterFrame. Однако, как вы уже могли заметить, чтобы получить плавную анимацию, вам нужно увеличить общую частоту кадров вашего фильма. Это также увеличит нагрузку на процессор на весь период работы SWF. Это не то, что вы всегда хотите.
Другой способ создания программной анимации - использование таймера. Внутри обработчика таймера можно вызвать функцию с именем updateAfterEvent
, которая обновит экран независимо от FPS, который вы установили для своего SWF. Поэтому использование таймера оставляет шлюз для плавной анимации в проигрывателе Flash без увеличения общей частоты кадров SWF.
Два года назад или около того я решил создать свои собственные библиотеки анимации для Flash (из-за моего разочарования по поводу существующих тогда доступных библиотек анимации). Я выпустил его под названием Coretween , и эта библиотека позволяет вам, помимо прочего, выбирать, какой тип анимации вы предпочитаете для каждой отдельной анимации. На странице документации я привожу пример разницы между кадровой и временной анимацией. Пример SWF на этой странице работает со скоростью 12 кадров в секунду, но, как вы можете видеть, нижний кружок сглаживается намного плавнее, поскольку он управляется таймером со скоростью 60 кадров в секунду и обновляет экран независимо от частоты кадров SWF. Однако имейте в виду, что даже таймер на частоте 60 кадров в секунду на самом деле Flash Player никогда не сможет достичь такой частоты кадров. Тем не менее, он попытается достичь такой частоты кадров, что приведет к гораздо более плавной анимации.
К сожалению, до сих пор я не смог выпустить версию 1.0 своей библиотеки, но насколько я знаю, она довольно стабильна. Вы можете использовать его так, как считаете нужным. Я использовал Coretween во многих коммерческих производствах, включая этот, который мы использовали для банка StGeorge здесь, в Австралии.