我想做一些非常小的游戏。是这里。
用户:honza 密码:honza
我不知道我应该使用画布还是 HTML DOM。当我更改部分、缩放和移动时,我只想重绘大约 20 张图片(蓝色块中的 10 张和灰色块中的 10 张)。大概会有一个感动的人。你有什么意见?我应该使用画布还是 HTML DOM?
DOM 中的操作(移动内容、动画、更改颜色等)将导致浏览器重绘和重排元素,这是一个消耗资源的过程。尤其是在您有大量持续的视觉更新的情况下,这些更新会不断触发浏览器进行处理,从而导致低端系统上的用户体验缓慢、滞后。
另一方面,画布不会那么多,因为<canvas>
元素的大小相同,所以没有reflow
任何动画等只会repaint
在<canvas>
.
有关更详尽的解释,请参阅此:http ://www.phpied.com/rendering-repaint-reflowrelayout-restyle/
如果您可以使用普通的旧 DOM 元素为游戏制作所有必要的动画,那么我认为这就足够了,但是对于任何类型的复杂动画,我建议使用画布。
假设您移动的人不包括非连续动画,您所描述的似乎完全可以使用 DOM。您可以在没有画布的情况下创建相对复杂的动画,这比使用画布做同样的工作要多得多。
如果您这样做是为了学习新事物,那么请选择画布,因为它将为您提供更好的服务。