Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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-clearInterval_Javascript_Animation - Fatal编程技术网

Javascript-clearInterval

Javascript-clearInterval,javascript,animation,Javascript,Animation,有人能帮我做clearInterval吗?我已经和它一起工作了几个小时,似乎无法让它工作。我使用的代码与我在W3学校发现的代码非常相似,如下所示: 这里还有一个链接,可查看实际操作: 带按钮的绘图图像 开始 停止 window.onload=函数(){ var c=document.getElementById(“myCanvas”); var ctx=c.getContext(“2d”); var img=新图像(); img.src=”http://hyque.com/ani/adam.p

有人能帮我做clearInterval吗?我已经和它一起工作了几个小时,似乎无法让它工作。我使用的代码与我在W3学校发现的代码非常相似,如下所示:

这里还有一个链接,可查看实际操作:


带按钮的绘图图像
开始
停止
window.onload=函数(){ var c=document.getElementById(“myCanvas”); var ctx=c.getContext(“2d”); var img=新图像(); img.src=”http://hyque.com/ani/adam.png"; var-xPos=0; ctx.drawImage(img,0,0,120,182,0,0,120,182); var el=document.getElementById('startBtn'); el.addEventListener('click',strt,false); var el2=document.getElementById('stopBtn'); el2.addEventListener('click',stopIt,false); 函数imageXPosition(){ clearRect(0,0,120,182);//这将清除画布 drawImage(img,xPos,0,120,182,0,0,120,182);//绘制各个帧 xPos+=120;//添加宽度 //这将向第二帧添加1 如果(xPos==120){ xPos+=1; } 如果(xPos>841){xPos=0;}//则在las帧之后重置为0 } 函数strt(){ var intStp=setInterval(imageXPosition,200); } 函数stopIt(){ 净距(intStp); } }
您可以查看范围界定:

 var intStp;
 function strt(){ 
 intStp = setInterval(imageXPosition, 200); 
} 
function stopIt(){ 
clearInterval(intStp);
 } 
函数内部的变量只有在函数结束时才存在,除非它未绑定到内部函数(请参见闭包)

函数不能访问其他函数属性,除非它正在访问外部函数的变量


您可以阅读MDN:JS作用域、函数、变量(主要是:基础)

IntStp-variable-in-local-scope-start-function。只需省略var关键字

var intStp
仅在
strt()中是局部作用域。您不能在该功能之外访问它。这是一种糟糕的做法。应始终在其适当的作用域内声明有效的变量。谢谢。我想知道这是否是一个范围问题。我想这都是学习过程的一部分。关于学习进度:请将其标记为答案;)(告诉其他助手,你已经满意了…)
 var intStp;
 function strt(){ 
 intStp = setInterval(imageXPosition, 200); 
} 
function stopIt(){ 
clearInterval(intStp);
 } 
function(){
var a;//a is declared
 }
 //a is deleted