Flash显示优化

来源:互联网 发布:网络助手怎么用? 编辑:程序博客网 时间:2024/06/05 15:04

一、问题
flash中的显示对象以层级的形式存在于显示列表。在每一帧flash会遍历显示列表对每一个显示对象进行渲染。但是帧间隔时间太短,当显示列表上的对象太多如大场景的时候,flash无法即时渲染就会出现cpu飙升甚至卡顿的现象,这时就需要考虑显示优化了。

二、方案
优化的关键是减少每帧flash的计算量。
可以通过以下几个方面来进行:
1.及时渲染(按需渲染)
2.缓存机制
3.避免不必要的交互

三、具体优化点
1.按需渲染
仅显示在显示窗口可见的对象。不可见的对象移出显示列表,停止播放,移出帧动作帧事件和其他隐藏时不必要的事件

2.使用位图缓存
矢量图:体积小,可以任意缩放不失帧,但是它的渲染完全通过计算得到,会消耗大量的cpu,渲染慢。
位图:基于像素缩放。在flash中渲染最快(Bitmap.bitmapData>BiatmapData.copyPixels>Graphics.beginbitmapFill),但是体积大。
巧用位图:由于在flash中多个Bitmap可以共用同一个BitmapData而且不会增加太多内存,内存主要由BitmapData占用。所以可以采用在在渲染过程中缓存Bitmapdata,当再次渲染需要用直接从内存里面获取,可以大大提高渲染时间。总之,用空间换时间。

3.减少不必要的交互
设置Sprite的mouseEnabled,mouseChildren, tabEnabledtab,Children为false,仅当需要时才开启。减少flash在帧中的鼠标检测和键盘检测。

原创粉丝点击