CacheAsBitmap和过滤器

时间:2013-03-26 12:54:37

标签: actionscript-3 flash

为什么在使用过滤器时cacheAsBitmap会自动设置为true?

我有一个每个帧都被绘制到舞台上的movieclip,因为它有一个播放时间轴,它每隔一段时间就会旋转一次我希望将cacheAsBitmap设置为false。但是movieclip有一个dropshadow过滤器,它将cacheAsBitmap设置为true,这是不是意味着我通过缓存每一帧而失去了很多性能?

从正在绘制的动画片段中删除影片过滤器并将其应用于所有孩子而不是一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

来自文档:

  

无论何时,cacheAsBitmap属性都会自动设置为true   将过滤器应用于影片剪辑(当其过滤器数组不为空时)。   如果影片剪辑应用了过滤器,则会报告cacheAsBitmap   如果将该属性设置为false,则对于该影片剪辑为true。如果   清除影片剪辑的所有过滤器,cacheAsBitmap设置   改变了上次设置的内容。

我相信这是因为Flash Player必须使用MovieClip的位图版本来应用效果 - 大多数过滤器都是在像素级别完成的。然后缓存它,以便进一步转换(如x/y)更有效。所以它真的没有区别,而cacheAsBitmap被设置为true或false。

使用过滤器+时间轴动画通常是一个坏主意。但是,一个很好的优化是将显示列表中更深的过滤器应用于未设置动画的对象。更好的是,尽可能尝试使用带栅格化效果的位图,这样就不会在运行时计算效果。

不要忘记使用Scout来确切了解玩家对物体的作用!