點(diǎn)擊reset函數(shù)也調(diào)用動(dòng)畫的bug處理!
這個(gè)程序有BUG,當(dāng)我點(diǎn)擊SHOW的按鈕當(dāng)圖片顯現(xiàn)出來后趕緊在點(diǎn)擊reset按鈕,動(dòng)畫從新播放了,而且圖片顯現(xiàn)出來了!解決辦法:可以在全局定義一個(gè)動(dòng)畫名稱,然后在reset函數(shù)中的時(shí)候首先調(diào)用clearInterval(函數(shù)名),這樣就沒有以上的問題了,我試了很多遍都可以,大家可以試一試
2017-04-16
可以先定義一個(gè)變量存儲(chǔ)定時(shí)器的狀態(tài),
代碼可以這樣寫:
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);
?? ?
}
2017-04-05
那是show函數(shù)情況下設(shè)置的每30毫秒增加20像素的上限沒有大于設(shè)定的上限,動(dòng)畫還沒有清除的原因