1

我已经盯着我的代码很久了,但我似乎不明白发生了什么。每当游戏结束时,我都会执行 cancelAnimationFrame 来停止游戏。然后我再次启动菜单。

现在的问题是,当我再次调用 requestAnimationFrame 时,代码似乎调用了它两次(游戏运行速度加倍)。

以下是我的代码:

这是启动:

var areaJogo = {
    beginGame: function(type) {
        //...
        this.myReq = requestAnimationFrame(updateArea);
        //...
    }
}

这是主要功能(用于动画):

function updateArea(){
    areaJogo.myReq=requestAnimationFrame(updateArea);

    //....

    if(/*conditionLoseGame*/) {
        stop();  
    }
}

function stop() {
    cancelAnimationFrame(areaJogo.myReq);

    areaJogo.myReq=undefined;
}

请注意,这些是代码中唯一使用 requestAnimationFrame 和 cancelAnimationFrame 的时间。谢谢!

4

1 回答 1

0

我发现了问题。

之所以调用它是因为我在 JavaScript 中做了一个按钮来启动游戏。

为此,每当我启动菜单时,我都必须做一个 addeventlistener。我做错的是在单击按钮时忘记执行 cleareventlistener 。

于 2018-02-03T09:51:05.243 回答