我正在将html5游戏移植到win8。为了保存游戏状态,我在save_game
中调用函数window.unload
(使用localStorage存储一些数据),这当然不适用于此。所以我改用WinJS.Application.oncheckpoint
。奇怪的是,如果我启动游戏并按alt-f4
,则不会保存游戏状态。在VS中使用console.log
在事件处理程序中进行调试,我发现它似乎只在我恢复应用程序时才会被触发。奇怪的是,如果我在代码中设置了一个断点,那么事件处理程序将在暂停期间正确执行。
任何人都知道为什么会这样?这是win8中的错误吗?
提前致谢。
答案 0 :(得分:3)
使用VS调试应用时,您会看到已知的行为。当您通过用户操作(Alt-F4 /顶部滑动)关闭应用程序时,应用程序实际上由调试器保持打开一段时间。如果在oncheckpoint上设置断点,调试应用程序,按Alt-F4然后等待约5秒左右,您将点击断点。模拟用户“关闭”事件的最佳方法是使用VS中的Suspend and Shutdown选项,该选项将立即触发oncheckpoint。