The*_*978 0 flash performance bitmap cache-control actionscript-3
我已经创建了一个全光谱色轮Sprite对象,它由1440个矢量三角形或切片组成,如果你愿意的话.
因为我想为色轮设置动画,我已经激活了显示对象的cacheAsBitmap属性.但是,将矢量缓存为位图并不会提高动画期间的性能 - 它仍然很慢,跳跃.
将色轮的PNG屏幕截图导入到具有无损压缩的库中,将其转换为Sprite,并且在动画期间旋转此新图像资源的效果很好.
为什么未压缩的PNG图像资源导出执行相同的矢量图像,并将cacheAsBitmap属性设置为true?
因为每次旋转对象时,都必须重新计算新的位图.
cacheAsBitmap仅适用于正在翻译但未旋转的对象; 来自文档:
cacheAsBitmap属性最适用于大多数静态内容且不经常缩放和旋转的影片剪辑.使用此类影片剪辑时,cacheAsBitmap可以在转换影片剪辑时(当其x和y位置发生更改时)导致性能提升.
这是因为缓存的位图被逐个像素地直接复制到显示表面(为了速度 - 这称为blitting).每次渲染时将变换应用于位图对于仅偶尔旋转一次的对象来说是愚蠢的.仅在应用变换时重新计算位图是一种设计决策,其在最常见的情况下提高性能,其中除了翻译之外的变换是不频繁的.