Я получаю очень заметное снижение производительности при использовании TweenLite для анимации фильтра при перетаскивании.
private function mouseMoveEventHandler(evt:MouseEvent):void
{
evt.stopImmediatePropagation();
startDrag();
zoomTween = new TweenLite(this, 1.0, {dropShadowAmount: ZOOM_SHADOW, scaleX: 1.5, scaleY: 1.5, rotation: 10, onUpdate: updateDropShadow, onComplete: completeDropShadow, onCompleteParams: [ZOOM_SHADOW]});
removeEventListener(MouseEvent.CLICK, mouseClickEventHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseUpEventHandler);
}
private function updateDropShadow():void
{
filters = [new DropShadowFilter(dropShadowAmount, 90, 0x000000, 1.0, dropShadowAmount * 2, dropShadowAmount * 2, 1.0, 3)];
}
private function completeDropShadow(dropShadowAmount:Number):void
{
this.dropShadowAmount = dropShadowAmount;
}
Я понимаю, что с TweenLite есть Drop Shadow Plusing, но он имеет возможность только включать и выключать фильтр, а не изменять расстояние или степень размытия всегда видимой тени.
Кроме того, я не тестирую это на мобильном телефоне, я тестирую на своем быстром настольном компьютере как во Flash CS5, так и во внешнем отладчике - оба отстают от экранного объекта, который представляет собой простую квадратную форму, даже после изменение масштаба завершено.
есть идеи?