Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;canvas.clearRect不是一个函数;当我清理画布时_Javascript_Html5 Canvas - Fatal编程技术网

Javascript &引用;canvas.clearRect不是一个函数;当我清理画布时

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

我试着在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=设定间隔(图纸,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需要做更多的工作,我们才能合理地回答他们。好的,现在我看到了我的错误,谢谢:)顺便问一下,人造丝解决方案会出现什么样的错误?没有,他的解决方案是工作代码。:)您的问题造成了混乱,因为您所说的错误消息是不可能的,因为您共享了代码。