javascript动画效果时间间隔
有一个下降的字,我将它的位置(x,y)和它的值存储在单独的数组中,如果我键入特定的字,我将删除三个数组中的所有值 我将interval time设置为800,但问题是删除与interval time对应的单词,而不是立即删除下面的单词 我想这是因为我的draw()函数正在更新中,这受到间隔时间的影响,但我不确定如何维护所有内容的绘制并在输入后立即擦除javascript动画效果时间间隔,javascript,intervals,Javascript,Intervals,有一个下降的字,我将它的位置(x,y)和它的值存储在单独的数组中,如果我键入特定的字,我将删除三个数组中的所有值 我将interval time设置为800,但问题是删除与interval time对应的单词,而不是立即删除下面的单词 我想这是因为我的draw()函数正在更新中,这受到间隔时间的影响,但我不确定如何维护所有内容的绘制并在输入后立即擦除 var intervalTime = 800; setInterval(update, intervalTime); //appearanc
var intervalTime = 800;
setInterval(update, intervalTime); //appearance interval
function doKey (keyPressed) {
if (window.event.keyCode === 13) { //if pressed enter
var submission = document.getElementById('inputbox').value;
var result = checkLetter(submission);
if (result > -1) {
//value deletion
alpha.splice(result, 1);
//positions deletion
listx.splice(result, 1);
listy.splice(result, 1);
increaseScore('score');
} else {
console.log("this is an error");
}
document.getElementById('inputbox').value = ''; //return to the first step
}
}
function draw() {
for (i = 0; i < alpha.length; i++) {
listy[i] += spdY;
ctx.fillText(alpha[i],listx[i],listy[i]);
}
}
function update() {
if (document.getElementById('life').innerHTML == 0) {
alpha = []
listx = []
listy = []
console.log("fail");
endoftheGame();
} else {
increaseLevel();
//console.log(alpha);
//console.log(listx);
//console.log(listy);
spdY = 50 + 5*(document.getElementById('score').innerHTML/10);//speed
lifeDeduction()
getLetter();
ctx.clearRect(0,0,500,500);
draw();
}
}
var间隔时间=800;
设置间隔(更新,间隔时间)//出现间隔
功能键(按键){
如果(window.event.keyCode==13){//如果按enter键
var submission=document.getElementById('inputbox')。值;
var结果=检查函(提交);
如果(结果>-1){
//值删除
α拼接(结果1);
//职位删除
listx.拼接(结果,1);
拼接(结果1);
增加分数(“分数”);
}否则{
log(“这是一个错误”);
}
document.getElementById('inputbox')。值=“”;//返回到第一步
}
}
函数绘图(){
对于(i=0;i
您可以使用ctx.clearRect(0,0500500)从doKey()
函数调用draw()
函数代码>在它之前调用以重新绘制屏幕。这样,屏幕会立即更新,但update()
函数的其他部分不会执行