我正在尝试在同一网页上的两个Flash对象之间设置双向localConnection(LC)。一个对象是AS2,另一个是AS3。
他们.connect()正确,以便他们都听。 但是当我尝试将数据从AS2 SWF发送到AS3 LC时,我遇到了错误。 95%的情况下会发生这种情况,但有时它会起作用,所以我知道这不是LC名称的问题(我明确检查过)
有时会发出一两条消息,并且连续的消息会失败。
关于可能导致什么的任何想法?
我的目标是创建一对多的连接映射,以便许多AS2 swfs可以连接到一个AS3 swf。这会有问题吗?
答案 0 :(得分:2)
一个可能的原因是我注意到同一个LC名称的多个监听器似乎无法工作。要查看我的意思,请在两个不同的选项卡上打开this page,您应该会看到两个“发送”SWF都有效,但只会在您打开的第一个选项卡上收到该消息。我猜你只使用两个SWF,但如果他们都试图听同一个LC名称,也许你会看到类似的东西?
另外,我认为LC在某种程度上对于隐藏页面元素内部的SWF是禁用的,甚至可能只是在屏幕外。你在做那样的事吗?
答案 1 :(得分:0)
你不是偶然有两个不同的浏览器打开同一页面吗? LocalConnection将跨浏览器连接,这可能会导致该问题。
通常我所做的是确保LC名称是唯一的,就是在服务器上生成随机LC名称,然后使用FlashVars将该LC名称传递给两个swfs。
它也可能与swf加载的顺序有关。可能是在创建连接的swf尝试连接之后,正在加载侦听连接的swf。然后,另外5%的时间,swf的负载按正确顺序排列。也许如果发生错误,只需尝试再次连接。
答案 2 :(得分:0)
我终于弄明白是什么导致了这个问题。
虽然在AS3中你可以使用相同的LC对象来发送和接收事件,但是在AS2中这样做会在一段时间后给你错误(可能在接收后尝试发送)。