经过一些代码
的测试,得出以下结论,希望能对大家有所帮助。
首先cacheAs
Bitmap
属性
不能滥用,使用以后显示对象会按一个像素一个像素的移动,效果
不好,但是对于没有缩放和旋转的平移的矢量图,会显著的提高效率
,提高的幅度取决于原矢量图的复杂程度。
矢量图
动画
的缩放平移动画的效率 会比 同样大小的位图的缩放平移动画 的效率低,同样,低多少取决于原矢量图的复杂程度。所以简单的矢量图并不需要替换成位图在做动画。
将镜头外的显示对象的visible属性设为false会节省不少渲染时间。所以建议这样做。
mask的显示对象 如果没有被显示,比如不再mask区域,它还是使用相同的时间来渲染。所以建议mask区域外的显示对象设visible属性为false。
我的测试代码:
- const WIDTH = 550;
- const HEIGHT = 400;
- addEventListener(Event.ENTER_FRAME,enterFrameHandle)
- var con = new Sprite();
- addChildAt(con,0)
- //test mask
- //con.mask = maskMc;
- var count=0;
- function enterFrameHandle(e:Event)
- {
- //test bitmap
- //var mc = new BallBitMap();
- var mc = new Ball();
-
- con.addChild(mc);
- mc.x=Math.random()*WIDTH;
- mc.y=Math.random()*HEIGHT
-
- //mc.cacheAsBitmap = true;
- //test visible
- //if(count>=1)
- //mc.visible=false;
-
- count++;
-
- if(count==400)
- trace(getTimer())
-
- }