AIR 中的缓存位图转换矩阵

当在移动 AIR 应用程序中使用缓存位图时,设置 cacheAsBitmapMatrix 属性。

在 AIR 移动配置文件中,您可以向显示对象的 cacheAsBitmapMatrix 属性分配一个矩阵对象。设置此属性后,您可以在不重新生成缓存位图的情况下对对象应用任何二维转换。您还可以在不重新生成缓存位图的情况下更改 alpha 属性。另外, cacheAsBitmap 属性必须设置为 true ,对象不得设置任何 3D 属性。

设置 cacheAsBitmapMatrix 属性会生成缓存位图,即使显示对象不在屏幕上、在视图中隐藏或其 visible 属性设置为 false 也是如此。使用一个包含其他转换的矩阵对象重置 cacheAsBitmapMatrix 属性也会重新生成缓存位图。

应用到 cacheAsBitmapMatrix 属性上的矩阵转换会应用到显示对象上,因为它已呈现到位图缓存中。因此,如果转换中包含一个 2x 缩放,位图呈现就会是矢量呈现大小的两倍。渲染器将反向转换应用于缓存位图,以便最终显示外观相同。您可以将缓存位图缩小,以减少内存的使用,但这样做有可能导致呈现失真。您还可以在某些情况下放大位图,以提高呈现质量,但这样会增加内存的使用。总之,使用不应用转换的单位矩阵可避免外观发生更改,如下例中所示:

displayObject.cacheAsBitMap = true; 
displayObject.cacheAsBitmapMatrix = new Matrix();

一旦设置了 cacheAsBitmapMatrix 属性,您就可以缩放、倾斜、旋转和平移对象,而不触发重新生成位图。

还可以在 0 和 1 的范围内更改 alpha 值。如果使用颜色转换,通过 transform.colorTransform 属性更改 alpha 值,转换对象中使用的 alpha 必须位于 0 和 255 之间。以任何其他方式更改颜色转换都会重新生成缓存位图。

在针对移动设备创建的内容中,只要将 cacheAsBitmap 设置为 true ,就必须设置 cacheAsBitmapMatrix 属性。但是,请考虑以下潜在的缺陷。旋转对象后,无论是缩放的还是倾斜的,最终呈现会显示出相比正常矢量呈现而言所表现的位图缩放或锯齿失真。