我正在制作Flash益智游戏。当用户加载游戏时,它需要询问是否从最后一个状态(如果存在)恢复游戏。我有一个序列化系统,但我需要确保加载状态肯定是最后一个状态。
一种解决方案是每次状态改变时(当玩家移动时)将状态保存到SharedObject
。然而,游戏状态有时包括倒计时,所以我必须不断(或定期)保存状态以保留它。我想这是可以接受的,但它看起来很糟糕。
当swf关闭时是否有任何事件被触发?或者其他人有另一个优雅的解决方案吗?
(我不使用AIR,但需要AIR的解决方案。)
编辑:另一个重点是我可能无法控制游戏的嵌入HTML,因为它可能会联合到许多网站。所以涉及javascript的解决方案并不理想。
答案 0 :(得分:2)
如果您的Flash托管在HTML页面上,您可以使用“Window is closing”事件通知,使用old-skool GetVariable()或new-stylee FlashCall()机制将消息发送到Flash对象。 / p>
你是否真的能够在你的Flash对象被销毁之前保持状态是另一个问题......你总是可以做(邪恶的)'你确定要关闭/导航离开这个窗口吗?'警告某些网站使用。
答案 1 :(得分:1)
on-close事件听起来是正确的解决方案,但我想知道你是否可以“拆分”你的序列化?即在每次移动时保存完整的拼图状态,但也有倒计时(或任何类似)的辅助“轻量级”状态,每次倒计时更改时都可以更新。
这可能比尝试捕获close事件更容易,并在页面被销毁之前保存(特别是因为浏览器在此区域中不一致)。
答案 2 :(得分:0)