我正在使用 Javascript 编写增量游戏,并且希望即使选项卡最小化或当前不在浏览器中处于焦点状态,游戏也能保持活动状态。
我做了一些研究,但找不到任何有帮助的东西。
我确实发现了解
document.hidden
,我想它可以用来在页面不活动时创建一个单独的条件来运行游戏,如下所示:
function inactiveRunGame() {
// do game logic
}
function handleFocusChange() {
if (document.hidden) {
var inactive = setInterval(inactiveRunGame, 1000);
} else {
clearInterval(inactive);
}
}
document.addEventListener("visibilitychange", handleFocusChange);
但是,如果可能的话,我希望页面始终保持活动状态,并且我不必这样做。
希望有人能够阐明这个问题。
Web Workers 可能是您最好的选择。因此,您可以在后台运行脚本,独立于用户界面线程。我认为 WW 无法访问 DOM,因此您必须在主线程上手动处理游戏显示的任何更新。也许通过从工作线程发送“消息”到主线程来更新游戏状态......