1

我正在尝试在同一网页上的两个 Flash 对象之间设置双向 localConnection (LC)。一个对象是 AS2,另一个是 AS3。

  1. 我使用一个 LC 对象在每个 swf 上发送和接收数据。(这应该没关系,对吧?我尝试使用两个对象,一个用于发送,一个用于接收,但遇到了同样的问题)。

他们 .connect() 正确,以便他们都听。但是当我尝试将数据从 AS2 SWF 发送到 AS3 LC 时出现错误。这发生在 95% 的时间,但有时它确实有效,所以我知道 LC 名称不是问题(我检查过,显然)

有时一两条消息通过,随后的消息失败。

关于可能导致它的任何想法?

我的目标是创建一个多对一的连接映射,以便许多 AS2 swf 可以连接到一个 AS3 swf。这会是个问题吗?

4

3 回答 3

2

一个可能的原因是我注意到同一个 LC 名称的多个侦听器似乎不起作用。要了解我的意思,请在两个不同的选项卡上打开此页面,您应该会看到两个“发送”SWF 都有效,但仅在您打开的第一个选项卡上接收到消息。我猜您只使用了两个 SWF,但如果它们都尝试收听相同的 LC 名称,您可能会看到类似的东西?

此外,我相信 LC 在某种程度上禁用了隐藏页面元素内的 SWF,甚至可能只是在屏幕外。你在做这样的事吗?

于 2008-11-10T03:26:15.750 回答
0

您不会碰巧有两个不同的浏览器打开同一个页面吗?LocalConnection 将跨浏览器连接,这可能会导致该问题。

通常我确保 LC 名称唯一的方法是在服务器上生成一个随机的 LC 名称,然后使用 FlashVars 将该 LC 名称传递给两个 swf。

它也可能与 swf 的加载顺序有关。可能是在创建连接的 swf 尝试连接后,正在加载侦听连接的 swf。然后,在另外 5% 的时间里,swf 的加载顺序正确。也许如果发生错误,只需尝试再次连接。

于 2008-11-11T12:55:59.000 回答
0

我终于弄清楚是什么导致了问题。

似乎虽然在 AS3 中您可以使用相同的 LC 对象来发送和接收事件,但在 AS2 中这样做会在一段时间后给您错误(可能是在接收后尝试发送时)。

于 2008-11-12T00:51:41.397 回答