javascript - HTML5/Canvas 是否支持双缓冲?

标签 javascript html canvas double-buffering

我想做的是在缓冲区上绘制我的图形,然后能够将其原样复制到 Canvas 上,这样我就可以制作动画并避免闪烁。但是我找不到这个选项。有人知道我该怎么做吗?

最佳答案

一个非常简单的方法是在同一屏幕位置放置两个 Canvas 元素,并为您需要显示的缓冲区设置可见性。完成后在隐藏处绘制并翻转。

部分代码:

CSS:

canvas { border: 2px solid #000; position:absolute; top:0;left:0; 
visibility: hidden; }

在 JS 中翻转:

Buffers[1-DrawingBuffer].style.visibility='hidden';
Buffers[DrawingBuffer].style.visibility='visible';

DrawingBuffer=1-DrawingBuffer;

在此代码中,数组“Buffers[]”包含两个 Canvas 对象。所以当你想开始绘图时,你仍然需要获取上下文:

var context = Buffers[DrawingBuffer].getContext('2d');

关于javascript - HTML5/Canvas 是否支持双缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801306/

相关文章:

javascript - 拒绝在框架中显示网站,因为它的 'X-Frame-Options'

javascript - jQuery Accordion - 将选定的一个向上移动

ios - Phonegap native 选择

javascript - Canvas 如何管理图像的比例

javascript - 我需要验证 jwt 吗?

java - 从命令行传递 -r javascript 后如何使 After Effects 退出

javascript - 在移动设备上隐藏 Bootstrap 导航栏并显示一个按钮而不是显示折叠的导航栏下拉菜单

javascript - 检查单选按钮的状态 (javascript/canvas)

android - 在 Canvas 上绘制和删除位图图标

javascript - 为什么这个 jquery 代码不起作用?