班大师
2017-03-21 12:38
这个程序有BUG,当我点击SHOW的按钮当图片显现出来后赶紧在点击reset按钮,动画从新播放了,而且图片显现出来了!解决办法:可以在全局定义一个动画名称,然后在reset函数中的时候首先调用clearInterval(函数名),这样就没有以上的问题了,我试了很多遍都可以,大家可以试一试
可以先定义一个变量存储定时器的状态,
代码可以这样写:
var state = false;
function reset(){
clearInterval(timer);
inintCanvas();
state = true;
}
function show(){
var timer = setInterval(function(){
slippingRegion.r +=20;
draw(img,slippingRegion);
if (slippingRegion.r>= 2*Math.max(oCanvas.width,oCanvas.height)||state) {
clearInterval(timer);
state = false;
}
},30);
}
那是show函数情况下设置的每30毫秒增加20像素的上限没有大于设定的上限,动画还没有清除的原因
Canvas玩儿转红包照片
55911 学习 · 67 问题
相似问题