Разрабатываю по работе флешку - карту Киева, естественно присутствуют эффекты увеличения, высветления, перемещения и для их реализации используется что-то типа:
var tween:Tween = new Tween(items[curItem], "alpha", Strong.easeOut, items[curItem].alpha, 0, 0.8, true);
И вот в чем дело, иногда анимация не доходит до конца и на карте например остается левый кусок с alpha = 0.1. Как не странно искать пришлось не долго... Проблема в том что AS3 ищет безхозные Tween-ы (а мои именно такие, т.к. являются локальными переменными) и убивает их (собирает мусор вобщем). Поэтому во избежание этого приспособился так:
//все анимации хранятся в словаре
private var tweens:Dictionary;
tweens = new Dictionary(false);
//создание анимации, установка обработчика конца проигрывания анимации и добавление её в словарь
var tween:Tween = new Tween(items[curItem], "alpha", Strong.easeOut, items[curItem].alpha, 0, 0.8, true);
tween.addEventListener(TweenEvent.MOTION_FINISH, tweenMotionFinish);
tweens[tween] = tween;
//когда анимация проиграна можно смело её удалять
private function tweenMotionFinish(e:TweenEvent):void
{
tweens[e.currentTarget] = null;
delete tweens[e.currentTarget];
}
Прывiтанне! Заглянул сюда из ГД.
ОтветитьУдалитьСам не программист, не дизайнер, но если не лень, то гиперссылку и подзаголовок глянь(те):
...использованием VBO
Тестирование сайта при разных разрехениях
А вдруг кто-то еще заглянет, оценит.. З павагай