我遇到了一个简单且令人困惑的问题: 如何阻止执行一段javascript代码?
在我的游戏中,我有一个功能(有延迟,因为该功能执行死亡序列)。 由于延迟,该功能需要5秒钟才能完成执行。
我希望此功能在继续执行剩余代码之前完全执行完毕。但是剩下的代码(擦除画布)会在函数仍在执行时执行。
如何阻止此事?
答案 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;
})
}
...
}