优化AS3 DropShadowFilter

时间:2015-05-22 13:49:59

标签: actionscript-3 flash optimization

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

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

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

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上启动补间,一旦结束,将文本字段添加到正确的父级("此",也许)并删除过时的{来自显示列表的{1}}。