以前老是怀疑AS3自定义命名空间会比默认命名空间效率低,正好最近想弄个简单的开源图形引擎,写框架我喜欢用自定义命名空间,因为那样看上去感觉比较高端 [表情20]
于是随便做了一个小测试:
在屏幕用BitmapData渲染的方式,创建了6400个颜色不一样的小点,因为是测试命名空间嘛,因此把渲染的预先判断关掉了,即每帧都在重绘所有区域!SBox的第三个默认参数是delay:int = 40,1秒钟等于25次渲染,每次都是6400个小点绘制到屏幕,并且开启了强行锁帧。
var box:SBox = new SBox(400,400);
box.turnOn();
for(var iy:int = 0; iy < 80; iy ++){
  for(var ix:int = 0; ix < 80; ix ++){
    var movie:SSlide = new SSlide(new BitmapData(1,1,false,Math.random() * 0xffffff));
    movie.enabled = false;
    movie.x = ix * 2;
    movie.y = iy * 2;
    box.addSon(movie);
  }
}
addChild(box);
SBox,SSlide等类的内部原本是用自定义命名空间来防止调用某些我不想让使用引擎的开发者调用的接口。
为了测试命名空间区别,因此直接将内部命名空间改成public或者protected,又输出了另一个版本来进行比较,以下两个截图即是!

图1是使用默认命名空间的绘制效率,即本来不想让外部随便访问的属性,改成了protected或者public
图片名称:图1
uploads/201004/30_140900_2.jpg

图2是使用自定义命名空间的绘制效率
图片名称:图2
uploads/201004/30_140904_1.jpg

看了这篇文章后,你也可以回顾这篇文章:http://www.xiaos8.com/article.asp?id=406
这次测试用的图形引擎,就是这篇文章讲引擎的演变过来的,原来的引擎是工作时写的没办法直接开源,现在重新写了一次,并且在不断的优化,和改善其工作方式。

另外上个引擎演示吧。引擎所加载的图片:http://www.xiaos8.com/uploads/flash/engine/image.png
这里面叠加播放了400个动画,目前还没做太多什么优化~优化标准都是按照120帧来跑的

[最后修改由 sunbright, 于 2010-04-30 14:37:59]
评论Feed 评论Feed: http://www.xiaos8.com/feed.asp?q=comment&id=560
怎么一页才显示这么点文章?点快速检索查看更多的文章: 显示全部 | 评论: 2 | 排序 | 观看的: 828
kundouzhishou*
[ 2010-05-14 14:44:21 ]
什么情况下需要自定义命名空间?
sunbright
[ 2010-05-14 15:18:38 ]
根据上面这个测试,那么自定义命名空间,什么时间段都不用为妙。

发表
表情图标
[表情01] [表情02] [表情03] [表情04] [表情05] [表情06] [表情07] [表情08] [表情09] [表情10] [表情11] [表情12] [表情13] [表情14] [表情15] [表情16] [表情17] [表情18] [表情19] [表情20] [表情21] [表情22] [表情23] [表情24]
UBB代码
转换链接
表情图标
悄悄话
昵称:   验证码: *
 
快速浏览
类别
标题
评论/流量
日期