使用 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 和外部调试器 - 两者都落后于显示对象,这只是一个简单的方形,即使在 zoomTween 之后完全的。
有任何想法吗?