我正在制作一个 Flash 益智游戏。当用户加载游戏时,需要询问是否从上次状态(如果存在)恢复游戏。我有一个序列化系统,但我需要确保加载的状态肯定是最后一个状态。
一种解决方案是每次状态更改时(当玩家移动时)将状态保存到 SharedObject
中。但是,游戏状态有时包括倒计时,因此我必须不断(或定期)保存状态才能保留它。我想这是可以接受的,但看起来很笨拙。
关闭 swf 时是否会触发任何事件?或者其他人有另一个优雅的解决方案吗?
(我没有使用 AIR,但需要 AIR 的解决方案值得赞赏。)
编辑:另一个重要的一点是,我可能无法控制游戏的嵌入 HTML,因为它可能会联合到许多网站。因此涉及 JavaScript 的解决方案并不理想。
最佳答案
如果您的 Flash 托管在 HTML 页面上,您可以使用“窗口正在关闭”事件通知,通过旧式的 GetVariable() 或新式的 FlashCall() 机制向您的 Flash 对象发送消息。
您是否真的能够在 Flash 对象被销毁之前保留状态是另一个问题...您总是可以执行(邪恶的)“您确定要关闭/离开此窗口吗?”提醒某些网站使用。
关于actionscript-3 - Flash/AS3 "Shutdown"或 "close"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563434/