智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

深入体会DisplayObject.cacheAsBitmap属性

Posted on 2010-02-03 11:20  Bill Yuan  阅读(1361)  评论(0编辑  收藏  举报

如果设置为 true,则 Flash Player 或 Adobe AIR 将缓存显示对象的内部位图表示形式。此缓存可以提高包含复杂矢量内容的显示对象的性能。 (对矢量图进行缓存)

具有已缓存位图的显示对象的所有矢量数据都将被绘制到位图而不是主显示。 然后,将位图作为贴紧到最接近像素边界的未拉伸、未旋转的像素复制到主显示。 像素按一对一与父对象进行映射。 如果位图的边界发生更改,则将重新创建位图而不会拉伸它。

除非将 cacheAsBitmap 属性设置为 true,否则不会创建内部位图

cacheAsBitmap 属性设置为 true 后,呈现并不更改,但是,显示对象将自动执行像素贴紧。 动画速度可能会大大加快,具体取决于矢量内容的复杂性。

只要对显示对象(当其 filter 数组不为空时)应用滤镜,cacheAsBitmap 属性就自动设置为 true,而且如果对显示对象应用了滤镜,即使将该属性设置为 false,也会将该显示对象的 cacheAsBitmap 报告为 true。 如果清除显示对象的所有滤镜,则 cacheAsBitmap 设置将更改为它上次的设置。

在下面的情况下,即使将 cacheAsBitmap 属性设置为 true,显示对象也不使用位图,而是从矢量数据呈现:

  • 位图过大。在 AIR 1.5 和 Flash Player 10 中,位图图像的最大宽度或高度为 8,192 像素,并且像素总数不能超过 16,777,216 像素。(因此,如果位图图像的宽度为 8,192 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本中,高度最大为 2,880 像素,宽度最大为 2,880 像素。
  • 位图无法分配(内存不足错误)。

最好将 cacheAsBitmap 属性与主要具有静态内容且不频繁缩放和旋转的影片剪辑一起使用。 对于这样的影片剪辑,在转换影片剪辑时(更改其 xy 位置时),cacheAsBitmap 可以提高性能。