Javascript &引用;canvas.clearRect不是一个函数;当我清理画布时
我试着在HTML5画布上画一个圆圈,然后移动它 我编写了以下Javascript代码:Javascript &引用;canvas.clearRect不是一个函数;当我清理画布时,javascript,html5-canvas,Javascript,Html5 Canvas,我试着在HTML5画布上画一个圆圈,然后移动它 我编写了以下Javascript代码: var a=0; 函数绘图(){ var c=document.getElementById(“游戏”); var ctx=c.getContext(“2d”); clearRect(0,0,canvas.width,canvas.height); ctx.beginPath(); 弧(45+a,45,40,0,2*Math.PI); ctx.stroke(); a++; } var t=设定间隔(图纸,1
var a=0;
函数绘图(){
var c=document.getElementById(“游戏”);
var ctx=c.getContext(“2d”);
clearRect(0,0,canvas.width,canvas.height);
ctx.beginPath();
弧(45+a,45,40,0,2*Math.PI);
ctx.stroke();
a++;
}
var t=设定间隔(图纸,1000)代码>
在clearRect
方法中,canvas.width
和canvas.height
将抛出错误,因为canvas
未定义。您应该传递有效的对象
var a=0;
函数绘图(){
var canvas=document.getElementById(“游戏”);
var ctx=canvas.getContext(“2d”);
clearRect(0,0,canvas.width,canvas.height);
ctx.beginPath();
弧(45+a,45,40,0,2*Math.PI);
ctx.stroke();
a++;
}
var t=设定间隔(图纸,1000)代码>
s/canvas/context,您在上下文上执行操作,而不是在画布本身上执行操作。该错误表明显示的代码与您正在运行的代码不一样。否则它会抱怨ctx.clearRect
不是canvas.clearRect
canvas
是未定义的,对吗?请放入var c=document.getElementById(“游戏”)
&var ctx=c.getContext(“2d”)代码>在函数外部,作为全局变量。你也可以在你的函数中使用c.width,c.height
而不是canvas.width,canvas.height
这是正确的,但这会引发一个与OP.rlemon报告的完全不同的错误。@rlemon-我执行了他的代码,而不是专注于他提到的错误,但我仍然希望看到产生该错误的实际代码。在这种情况下,这里指出的错误甚至可能不存在。不过,你是对的。我不想听起来很好斗,只是OP需要做更多的工作,我们才能合理地回答他们。好的,现在我看到了我的错误,谢谢:)顺便问一下,人造丝解决方案会出现什么样的错误?没有,他的解决方案是工作代码。:)您的问题造成了混乱,因为您所说的错误消息是不可能的,因为您共享了代码。