javascript动画效果时间间隔

javascript动画效果时间间隔,javascript,intervals,Javascript,Intervals,有一个下降的字,我将它的位置(x,y)和它的值存储在单独的数组中,如果我键入特定的字,我将删除三个数组中的所有值 我将interval time设置为800,但问题是删除与interval time对应的单词,而不是立即删除下面的单词 我想这是因为我的draw()函数正在更新中,这受到间隔时间的影响,但我不确定如何维护所有内容的绘制并在输入后立即擦除 var intervalTime = 800; setInterval(update, intervalTime); //appearanc

有一个下降的字,我将它的位置(x,y)和它的值存储在单独的数组中,如果我键入特定的字,我将删除三个数组中的所有值

我将interval time设置为800,但问题是删除与interval time对应的单词,而不是立即删除下面的单词

我想这是因为我的draw()函数正在更新中,这受到间隔时间的影响,但我不确定如何维护所有内容的绘制并在输入后立即擦除

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()
函数的其他部分不会执行