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/2795269/

相关文章:

javascript - 如何在面板中添加 2 个按钮来折叠/展开 ExtJs 网格中的所有组?

javascript - 清除html5表单错误

javascript - 用javascript更新某人的生日

javascript - 使用 collection_select() 过滤 fullCalendar() 上的事件

python - 有没有一种简单的方法来编写随时间比较网页的脚本?

javascript - 从 html 元素创建 img 文件(bmp、jpg、png)

c++ - 给定同一个 Direct2D 工厂的多个渲染目标

JavaScript Canvas 创建模式

javascript - jQuery 无法根据选择选项显示/隐藏元素

javascript - 在客户端应用程序中按角色过滤 UI 的策略