我在嵌入式设备上基于 WebKit 的浏览器中看到以下行为:在画布出现错误后(我还不确定错误的性质,但有时看起来好像由于绘图太慢而无法绘制...),画布本身变得陈旧。即不再有绘图命令会影响图像(错误在 JavaScript 代码中被捕获)。
到目前为止,我无法修复错误 - 我将如何导致画布刷新,如在绘制错误后恢复?
我在嵌入式设备上基于 WebKit 的浏览器中看到以下行为:在画布出现错误后(我还不确定错误的性质,但有时看起来好像由于绘图太慢而无法绘制...),画布本身变得陈旧。即不再有绘图命令会影响图像(错误在 JavaScript 代码中被捕获)。
到目前为止,我无法修复错误 - 我将如何导致画布刷新,如在绘制错误后恢复?
您可以尝试使用以下方式强制重新初始化:
try {
//to catch the error you recevie
} catch(err) {
var tempHeight = canvas.height;
canvas.height = 0;
canvas.height = tempHeight;
}
(有人会说只是设置canvas.height = canvas.height
(或宽度),但这不适用于所有浏览器)。
另一种方法是分离 canvas 元素本身,创建一个新元素并使用attachChild
.
但是,这些都是 hack,希望您看到的错误将在下一次更新中被删除。