CGContextClearRect:使用非空路径调用'在Canvas2d在Mac
'CGContextClearRect: called with non-empty path' in Canvas2d in Mac
我已经写了一个简单的代码来绘制带有阴影的动画圆圈,这里是
function animate(){
if(i<=360){
var rad_grad = ctx.createRadialGradient(200,200,0, 200,200,100);
rad_grad.addColorStop(0,'#fff');
rad_grad.addColorStop(1, '#444');
ctx.clearRect(0,0,canvas.width, canvas.height);
ctx.beginPath();
ctx.strokeStyle = lin_grad;
ctx.lineWidth = 30; //20
ctx.arc(200,200,50,0,Math.PI*(i=i+2)/180);
ctx.stroke();
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowBlur = 5;
ctx.shadowColor = 'rgba(68,68,68,0.7)';
ctx.closePath();
window.webkitRequestAnimationFrame(animate);
}
else{
window.webkitCancelRequestAnimationFrame();
}
}
现在这段代码运行良好。没有问题。但是当我在Mac中从命令行启动Google Chrome时,我一直在命令行中获得CGContextClearRect: called with non-empty path
错误,而动画是在上。然而,如果我在Ubuntu的命令行中运行相同的代码,我什么也得不到。
当有动画阴影时,问题也会重现。如果我移除阴影代码并保留动画,那么效果就会很好。即使我移除动画并保留阴影,它也能工作。只有当阴影和动画都存在时,问题才会出现,而且这个错误只在Mac OS中发现。
我搜索了CGContextClearRect: called with non-empty path
,我发现它与Mac开发有关。我没有这方面的经验。有人能告诉我为什么会有这样的行为吗?
我相信如果你把clearRect()
调用在一个路径,像这样…
ctx.beginPath();
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.closePath();
问题可能会消失。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- CGContextClearRect:使用非空路径调用'在Canvas2d在Mac