Flash游戏开发:BitmapData的使用

互联网   发布时间:2008-10-06 01:25:18   作者:佚名   我要评论
作为Flash游戏开发者,整天都在跟Flash的显示效率搏斗。最近为了更好的节约效率,在下做了一些测试,得到了一些结果,同时也感到了一些问题,请诸位高手也帮忙看看! ******************************************************************** 1、copyPixels,5000次,10
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

作为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 cs6鼠标跟随效果实现代码分享

    flash cs6想要实现鼠标跟随效果?该怎么制作呢?今天我们就来看看使用as2.0实现鼠标跟随效果的教程,需要的朋友可以参考下
    2019-05-19
  • Flash cs6怎么使用代码输入中英文文本?

    Flash cs6怎么使用代码输入中英文文本?Flash cs6中可以使用文字工具直接输入文本,也可以使用代码来输入文本,该怎么使用代码输入文本呢?请看下文详细的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定义抽象类和抽象?

    flash as3.0抽象类怎么定义? as3.0中有很多抽象类,该怎么定义抽象类和抽象方法呢?下面我们就来看看简单的例子,需要的朋友可以参考下http://www.jb51.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,该怎么使用呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2018-01-25
  • Flash中怎么实现鼠标点击决定图像位置?

    本教程给大家分享一个Flash小教程,教大家在Flash CS6中怎么实现鼠标点击决定图像位置?方法很简单,感兴趣的朋友欢迎前来一起分享学习
    2018-01-12
  • Flash中如何用代码将图片放在自己想要的舞台位置?

    本教程教程序员之家的ActionScript教程学习者在Flash中如何用代码将图片放在自己想要的舞台位置,教程讲解的详细,感兴趣的朋友欢迎前来分享学习
    2017-11-20
  • 在Flash CS6中使用with函数绘制背景图教程

    本教程教程序员之家的ActionScript教程学习者如何在Flash CS6中使用with函数绘制背景图?教程一步步讲解的挺详细,方法也不难,非常适合Flash新手入门学习
    2017-11-18
  • Flash怎么设置元件坐标?flash使用代码设置元件的坐标的教程

    Flash怎么设置元件坐标?flash中导如的元件需要添加坐标,该怎么定位元件坐标呢?下面我们就来看看flash使用代码设置元件的坐标的教程,需要的朋友可以参考下
    2017-10-11
  • Flash怎么制作来回摇摆的花朵的动画?

    Flash怎么制作来回摇摆的花朵的动画?Flash中想要给花朵制作一段摇摆的动画效果,该怎么制作呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下
    2017-05-23
  • Flash怎么制作流动七彩色的文字?

    Flash怎么制作流动七彩色的文字?想要让文字动起来,该怎么使用flash给文字制作一个流动七彩色的动画呢?下面我们就来看看详细的教程,需要的朋友可以参考下
    2017-04-23

最新评论

?


http://www.vxiaotou.com