Flash 矢量图和位图性能对比 导出为位图/缓存为位图 export as bitmap / cache as bitmap

December 17, 2023
测试
测试
测试
测试
1 分钟阅读

 大家都知道Flash处理矢量图比位图要慢,而具体的性能上对比也有不少的前人已经做过。

http://bbs.9ria.com/forum.php?mod=viewthread&tid=228212&extra=page%3D1%26filter%3Dtypeid%26typeid%3D332&page=1

这里copy一下别人的结论,4种模式下的性能对比:

另外,这里想补充2点,第一个是关于为什么位图是否带AS链接的区别;第二个是导出为位图和缓存为位图的区别。

1、首先看看这里位图指的是怎么样的场景:

trace一下Ball元件的子节点,我们会发现位图带不带导出AS链接,有惊人的差别。 不带AS链接,子节点是一个flash.display.Shape 带AS链接,子节点是一个flash.display.Bitmap 我的理解是: 不带AS链接,编译器认为这个位图不会再重复使用,为了保持矢量作风(Flash喜欢矢量),把位图分离填充到Shape中。 如果导出了AS链接,那么编译器会知道日后还会实例化(new)这个BitmapData,所以就生成为Bitmap

2、在测试过程中,尝试了一下“导出为位图”和“缓存为位图”。

缓存为位图也就是上边链接文章说的方式,对于元件本身没有动画的情况,是非常有效的。当然,文章的示例程序还是包了一层MovieClip,也许实际应用会有更高效的写法(例如BitmapData.draw等) 相应,尝试了一下导出为位图,按官方资料介绍,这里只是运行时和编译时转为位图的区别,但是实际效果来看,导出为位图跟原来矢量效果没有差别。 这里百思不得其解。 trace可以发现,导出为位图,实际运行过程中,Ball和Ball的子元件都是原来的类型(MovieClip和Shape),而且Ball的cacheAsBitmap是false,没有看到任何位图的影子。 也许这又回到了第一个问题上,虽然导出了位图,但这个位图还是被分离到Shape里边了。 简单结论:导出为位图无效。。。 

如果大家有更好的见解,请不妨留言

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多