我有一个flash / Actionscript 3应用程序(swf)。此应用程序每2秒向服务器发送一条消息。但是,在某些浏览器/操作系统(例如,mac中的safari)中,当浏览器失去焦点时,它会停止发送这些消息。
我在EVENT.ENTER_FRAME循环中发送这些消息,因此每次呈现应用程序时,我都有机会发送消息。我的理论是,有些浏览器出于某种原因显然会停止调用此方法/停止渲染,因为它已经失去了焦点。但是,我想继续发送这些消息。
我已经尝试过使用一个Timer,这是一个每2秒调用一次的事件,但是我在某个地方读过(我的测试似乎同意)这个定时器也连接到渲染/帧输入,这样定时功能也不会被执行。
有办法做我想做的事吗?
答案 0 :(得分:2)
您可以使用MOUSE_LEAVE stage event检查您的swf何时失去焦点。
我建议使用ExternalInterface在swf和javascript之间建立连接。一旦连接完成,让javascript调用您的服务器而不是闪存,这可能会失去焦点。
出于好奇,为什么你需要每2秒轮询服务器一次?