Lan*_*nbo 11 performance html5 canvas css-sprites
我想问一下是否有人能给我一些我想做的设计决定的提示.
我的项目将包含一些精灵(一次在屏幕上预期10到30个),并且有几种方法可以实现它们.一种方法是CSS-Sprites,另一种方法是在画布上绘制它们.两者都不难.背景将是另一个<canvas>在后台绘制的图块地图.
我已经看到Crafty附加了Sprites,<div>因为它在HTML中<canvas>作为CSS-Sprite.我不确定如果<div>在画布中是否存在速度差异.有区别吗?
我希望用户通过鼠标点击,左,右等与精灵交互.精灵当然是在瓷砖地图的元素上站立或行走.那么编写一个处理程序<canvas>并找到精灵更有效率,或者更确切地说使用<div>并让浏览器处理这个发现?
我希望我可以传达我的问题.
Phr*_*ogz 11
我的测试表明纯粹的HTML + CSS对于精灵来说通常比Canvas更快:
通过CSS与HTML5 Canvas在网页上运动图像的性能
在这里查看测试和结果(来自10个月前的浏览器):http:
//phrogz.net/tmp/image_move_speed.html
具体来说,我有两个测试几乎与您的问题完全相同:
总结FPS:
Image Image Sprite Sprite
Browser Canvas CSS Canvas CSS
----------------------------------------------
Safari v5.0.3 59 95 59 89
Firefox v3.6.13 59 95 60 90
Firefox v4.0b8 75 89 78 82
Chrome v8.0 108 230 120 204
iPad, Horiz 17 44 2 14
iPad, Vert 4 75 2 15
更新的浏览器通常要快得多(Chrome几乎总是在同一台机器上达到250fps的内部上限)并且更多地缩小差距,但使用Canvas仍然更慢并且工作量更大.