优化 AS3 DropShadowFilter

Optimizing AS3 DropShadowFilter

我正在使用 GreenSock 的 TweenMax 淡入 TLFTextField 并应用 DropShadowFilter .当我尝试这样做时,帧率下降到大约 8fps。没有阴影,过渡是一致的 24fps。我知道 Flash 会在每一帧重绘阴影 - 有什么办法可以避免这种情况吗?

cacheAsBitmap好像没有什么明显的效果。我可以将文本字段绘制成位图,但我希望这是最后的手段。是否有重绘阴影的覆盖?或者可能是另一种方法?

如有任何帮助,我们将不胜感激。 提前致谢。

嵌入 TextField 以淡入父级 Sprite,将该精灵缓存为位图,并通过补间其 alpha 淡入父级。这应该使 Flash 在整个处理过程中只绘制一次阴影。

var fadeholder:Sprite=new Sprite();
fadeholder.addChild(tf); // your textfield
tf.alpha=1;
// it should have filter applied already
fadeholder.cacheAsBitmap=true;
addChild(fadeholder);

执行此操作后,在 fadeholder.alpha 上启动补间,一旦结束,将文本字段添加到适当的父级("this",也许)并从中删除过时的 fadeholder显示列表。