Flash游戏开发:BitmapData的使用_Flash教程-查字典教程网
Flash游戏开发:BitmapData的使用
Flash游戏开发:BitmapData的使用
发布时间:2016-12-21 来源:查字典编辑
摘要:作为Flash游戏开发者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题...

作为Flash游戏开发者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题,请诸位高手也帮忙看看!

********************************************************************

1、copyPixels,5000次,1000*590,没有lock,后addChild

cost: 10828

cost: 10844

cost: 10625

2、copyPixels,5000次,1000*590,没有lock,先addChild

cost: 10828

cost: 10844

cost: 10625

3、copyPixels,5000次,1000*590,有lock

cost: 10766

cost: 10654

======================================================

结论:

1、lock没有效果?

2、先后addChild也没区别?

======================================================

4、copyPixels,5000次,128*64,没有lock,先addChild

cost: 47

cost: 47

5、copyPixels,5000次,1000*590,rect(128*64),没有lock,先addChild

cost: 62

cost: 62

6、copyPixels,5000次,1000*590,rect(128*64),dest(950,0),没有lock,先addChild

cost: 31

======================================================

结论:

1、copyPixel速度和拷贝区域象素数量严格相关;

2、原始图大小有少许影响,原始图如果比较大,跟小图取一样范围,也会有些许效率损失

======================================================

7、draw,5000次,128*64,没有lock,先addChild,图片无透明度

cost: 219

cost: 219

8、draw,5000次,1000*590,没有lock,先addChild,图片无透明度

cost: 10328

cost: 10407

9、draw,5000次,128*64,没有lock,先addChild,整张图片有透明度渐变

cost: 218

cost: 218

cost: 219

10、draw,5000次,1000*590,没有lock,先addChild,整张图片有透明度渐变

cost: 11843

cost: 11610

cost: 11969

======================================================

结论:

1、draw对Bitmap有优化,越大尺寸,draw和copyPixel的区别越小

2、透明度对大图片draw效能有影响,大约是画图本身的10%,小图片可忽略

======================================================

11、draw, 5000次,1000*590,clip(128,64),没有lock,先addChild,无透明

cost: 156

cost: 172

cost: 171

12、draw, 5000次,1000*590,clip(128,64),没有lock,先addChild,整张图片有透明度渐变

cost: 219

cost: 219

======================================================

结论:

1、clip对draw性能提升显著,基本相当于clip后大小的图片的效能

2、大图clip后效果反而比同尺寸小图高?猜想是颜色原因,见下一个实验

======================================================

13、draw,5000次,128*64,没有lock,先addChild,图片纯色

cost: 157

cost: 172

cost: 157

14、draw,5000次,128*64,没有lock,先addChild,图片杂色

cost: 172

cost: 171

======================================================

结论:

1、效能和图片颜色没有关系??看来只能是和png存储结构有关了。已测试的3张同样大小的图片,纯色与杂色接近,云彩图案的最慢。

======================================================

15、循环用setPixel32和setPixel32逐象素设置,1000*590,1次

cost: 297

16、循环用setPixel32和setPixel32逐象素设置,1000*590,1000次

Error: Error #1502: 脚本的执行时间已经超过了 15 秒的默认超时设置。

17、循环用setPixel32和setPixel32逐象素设置,1000*590,10次,没有lock

cost: 2875

18、循环用setPixel32和setPixel32逐象素设置,1000*590,10次,有lock

cost: 2109

======================================================

结论:

1、这样搞还是比较慢的……千万不要这样搞……

2、居然有15秒限制?…………

3、lock在这里体现了一些作用,可能因为逐象素操作对刷新的影响太大了。但是作用也没有明显到什么地步。

======================================================

19、draw,5000次,1000*590,目标图片500*590

cost: 5875

======================================================

结论:

1、如所料一般,目标区域超出的部分也是不会画的

======================================================

********************************************************************

我还会持续进行各种测试,有新的结果会继续报告上来~

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Flash教程学习
    热门Flash教程学习
    网页设计子分类