0

我正在将一个html5游戏移植到win8。为了保存游戏状态,我在 中调用了一个函数save_game(它使用 localStorage 来存储一些数据)window.unload,这当然在这里不起作用。所以我WinJS.Application.oncheckpoint改用。奇怪的是,如果我启动游戏并按alt-f4,则不会保存游戏状态。用事件处理程序在VS中调试console.log,我发现它似乎只有在我恢复应用程序时才会触发。奇怪的是,如果我在代码中设置断点,事件处理程序将在暂停期间正确执行。

有人知道为什么会这样吗?这是win8的bug吗?

提前致谢。

4

1 回答 1

3

使用 VS 调试应用程序时,您会看到已知行为。当您通过用户操作(Alt-F4 / 顶部滑动)关闭应用程序时,该应用程序实际上会被调试器保持打开一段时间。如果在 oncheckpoint 中设置断点,调试应用程序,按 Alt-F4 然后等待约 5 秒左右,您将遇到断点。模拟用户“关闭”事件的最佳方法是使用 VS 中的暂停和关闭选项,该选项将立即触发 oncheckpoint。

于 2013-02-08T17:00:14.357 回答