如何防止javascript代码执行?

时间:2014-03-31 18:23:58

标签: javascript html5 loops html5-canvas

我遇到了一个简单且令人困惑的问题: 如何阻止执行一段javascript代码?

在我的游戏中,我有一个功能(有延迟,因为该功能执行死亡序列)。 由于延迟,该功能需要5秒钟才能完成执行。

我希望此功能在继续执行剩余代码之前完全执行完毕。但是剩下的代码(擦除画布)会在函数仍在执行时执行。

如何阻止此事?

2 个答案:

答案 0 :(得分:0)

Hackish解决方案:

让死亡序列在启动时将全局变量设置为true,并在完成时设置为false。在渲染循环函数的开头,检查全局变量,return;何时为真。

更清洁的解决方案是在逻辑循环和渲染循环中进行适当的状态处理。

答案 1 :(得分:0)

我还没有看到你的代码,但听起来你可能想要使用回调。

function deathSequence(callback) {
    ...
    function step() {
        lots_of_stuff;
        ...
        if(sequence_done) {
            callback();
        } else {
            setTimeout(step, 100);
        }
    }
    step();
    ...
}

function game() {
    ...
    if(dead) {
        deathSequence(function() {
            // Canvas won't get wiped until death
            // sequence is over
            wipe canvas;
        })
    }
    ...
}