2
我已經寫了下面這個函數,它應該每20ms運行一次,直到一個顏色淡入淡出完成,但淡入淡出發生了 - 爲什麼?Javascript:setTimeout間隔似乎被忽略?
function saveColour()
{
if(x<=speedms/frameratems)
{
currentRed=Math.floor((x*deltaRed)+oldRGB[0]);
currentGreen=Math.floor((x*deltaGreen)+oldRGB[1]);
currentBlue=Math.floor((x*deltaBlue)+oldRGB[2]);
document.getElementById(id).style.backgroundColor="rgb("+currentRed+", "+currentGreen+", "+currentBlue+")";
//window.alert("rgb("+currentRed+", "+currentGreen+", "+currentBlue+")");
x++;
setTimeout(saveColour(),frameratems);
}
}
setTimeout似乎立即運行,無論我設置frameratems和我不知道爲什麼。
謝謝!
應的setTimeout(saveColour,frameratems); setTimeout期望對函數的引用。 saveColour()是調用,saveColour是引用。你需要參考。 – 2014-10-03 09:34:08
您使用錯誤的語法:'setTimeout(saveColour(),frameratems);'。它應該是:'setTimeout(saveColour,frameratems);' – hindmost 2014-10-03 09:34:18
令人驚歎的,這是馬上工作。謝謝你們! – 2014-10-03 09:36:49