我有两部flash动画使用localConnection相互通信,将一个对象从swfA传递给swfB。这似乎工作正常,但偶尔会失败。我们唯一的信息是状态事件以error
级别触发,没有其他信息。一旦连接失败,它将继续这样做。
我不知道为什么会这样,但这不是一个安全问题(两部电影都在同一个域上运行),所有通信都包含在try..catch
中。
有没有人见过这个或任何人都可以建议另一种方法来进行电影间的通信?我尝试过使用ExternalInterface
但是对于发送的更新数量来说太慢了。
答案 0 :(得分:1)
我们似乎已经解决了问题,但并不完全确定原因(我们可能只是大大减少了失败次数)。我们已实施以下内容:
externalInterface
来减少localConnections的数量所以没有确定的解决方案,它们似乎在一起解决了这个问题。
答案 1 :(得分:0)
LocalConnection很疯狂。它通过您的计算机并与全局剪辑通信。这意味着他们甚至不必在同一页面上。例如,如果您正在运行Air应用程序,则可以与基于浏览器的应用程序进行通信。
请记住,这些ID是全局的,如果它们发生冲突,它们就会出错。当我打开两次相同的swf时,我发生了这种情况(因为它会侦听相同的id)。即使它们在不同的页面上也会发生这种情况。
另一个选择是让swfs轮询服务器并通过数据库进行通信。不确定这是否有帮助。我尽力避免使用LocalConnection:)
答案 2 :(得分:0)
我遇到了同样的问题。我的解决方案是设置一个计时器,尝试重新连接连接,直到找到它。非常简单的计时器,具有在连接成功时设置e.target.stop()
的功能。