【问题标题】:How to save state to the server in an AS3 Flex App before unloading the SWF?在卸载 SWF 之前,如何在 AS3 Flex 应用程序中将状态保存到服务器?
【发布时间】:2014-07-28 15:34:12
【问题描述】:

我想在 SWF 关闭时使用URLLoader 将我的用户状态保存到服务器。我有一个名为saveUserState 的函数,它可以在除关机之外的任何时候调用时正确保存用户的状态。

在我的 creationComplete 函数中,如何添加事件侦听器以了解主 SWF 何时卸载?

我试过了:

addEventListener(Event.REMOVED_FROM_STAGE, saveUserState, true, 1000, true);

但是当 SWF 关闭时,我的 saveUserState 函数没有被调用。我在 Internet 上搜索并找到了其他答案,这些答案需要 JS 的外部接口,该接口在浏览器的 onbeforeunload 上进行调用,但我看到了 IE 的问题,我想避免需要这个 JS。我也看到了this answer,但它没有被标记为接受,我发现它不起作用。

这可能吗?

【问题讨论】:

  • 您为什么将true 指定为useCapture
  • 因为这样事件将在第一个事件阶段被捕获,我可以尽早采取行动。

标签: actionscript-3 apache-flex


【解决方案1】:

当状态改变时,尝试将用户状态保存到服务器。在这种情况下,您将免受意外事件的影响,例如断开连接、电源或互联网故障。

【讨论】:

  • 抱歉,这不起作用。你有一个可行的例子吗?
  • 首先,您的应用程序中的“用户状态”是什么?它决定了什么?
  • 应该没关系,但举个例子,假设它是一个游戏,它描述了用户的当前等级和获得的金币。它可以表示为这样的字符串:“12|542”,其中用户为 12 级,拥有 542 金币。自上次状态保存以来,用户可能已经获得了一些金币,需要在卸载 SWF 之前将其保存到服务器。希望对您有所帮助。
  • 好的。每次用户提升等级和/或获得金币时,您可以尝试将此值保存到服务器,如果不经常发生的话。无论如何,我见过很多游戏,其中一些非常受欢迎,用户在关闭页面或浏览器时会丢失游戏进度。如果不能每次都保存,请尝试按时间间隔定期保存进度。
  • 如果有帮助的话,还有javascript函数window.onbeforeunload,可以用来调用Flex应用程序中的函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多