【问题标题】:as3 LocalConnection communication stops working when site is open in2 browser windows当站点在2个浏览器窗口中打开时,as3 LocalConnection 通信停止工作
【发布时间】:2015-09-07 21:02:52
【问题描述】:

我想我在LocalConnection 通信设置中发现了一个闪存错误,如此处所述。下面这个网站不是我的,我只是用来说明其他网站也有问题:

如何重现:

http://fcontheweb.com/articles/localconnection/

如果您在 2 个浏览器窗口中打开该站点,请找到在 2 个 as3 组件之间发送消息的 as3 示例。

单击第一个浏览器窗口中的按钮:它将与消息框进行本地通信。如果您随后按下第二个浏览器窗口上的按钮,则不会发生任何事情。如果关闭第一个浏览器窗口,则必须在第二个窗口开始工作之前刷新页面。

我认为这是因为两个窗口中的 as3 对象的命名空间在浏览器的 flash 播放器插件中重叠,并且正在覆盖通信通道链接。

您可以通过再次打开 2 个窗口轻松验证我的假设,但现在先按下最后一个窗口中的按钮。该窗口中不会发生任何事情,但消息将显示在第一个窗口中!不知何故,没有创建最后一页的接收器,因为该名称的接收器已经存在于 flash 插件的对象存储中。

您能否证实这一点,更有趣的是,是否有人对此有解决方法?是否可以检测本地运行的 swf 实例的数量并将其用作连接名称?

编辑:观察到的行为不是错误,而是预期行为。但是我的问题仍然存在:如何让同一浏览器窗口中的页面使用LocalConnection 独立于同一系统上不同浏览器窗口中的相同页面进行通信。

【问题讨论】:

    标签: actionscript-3 flash localconnection


    【解决方案1】:

    您的问题中提到的行为是正常行为,不是错误。

    要了解原因,请将您的 2 个打开的窗口视为 2 个窗口,每个窗口包含一个客户端和一个服务器,并且您的两个服务器将侦听同一端口 PORT,并且您的两个客户端都将连接到该端口你的本地机器。因此,当您启动第一个窗口时,服务器将开始在 PORT 上侦听来自客户端的连接,第二个服务器将不会启动,因为端口 PORT 已被占用,因此第一个服务器将接收所有客户端连接。

    关于检测本地运行的 swf 实例数量的第二个问题,您可以简单地使用SharedObject

    希望能有所帮助。

    【讨论】:

    • 啊,好的,这是设计使然。您如何使用 SharedObject 来计算 live 实例的数量(不仅仅是打开的总数)并不是很明显。我可以为同一浏览器中的所有页面生成并传递一个 GUID(例如:snipplr.com/view/45247/as3-globally-unique-identifier-guid)以用作 LocalConnection 名称,如果这是您的建议?
    • @StarShine 我不知道你想用LocalConnection 做什么,但你可以使用SharedObject 来计算你的 swf 实例,并确保当它们中的任何一个创建一个独特的新连接:swf1 : con1, swf2: con2, ..., swf_n: con_n ...
    • 嗯,这不是我真正需要的。 (我认为)相反,我希望 swf1 在浏览器窗口 1 中与 swf2 对话,而我希望在浏览器窗口 2 中也一样。目前我有窗口 1 的 swf1 与窗口 2 中的 swf2 对话(跨窗口消息传递)。对不起,如果这听起来有点复杂:)
    • @StarShine 在这种情况下(您只希望同一个窗口的 swf 之间进行通信),您可以使用 ExternalInterface 发送连接名称(在获取 SharedObject 后生成,或使用一些散列方法,...)到同一窗口的“客户端”,然后可以连接到它...
    • @StarShine 关于将flash转换为html5,正如你所说,谷歌当然有swiffy,我认为Adobe Flash CC也这样做......在我们之间,在这种情况下,我更喜欢总是写我自己的代码,因为我喜欢这样;)你可以看看这个link可能对你有帮助......祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2020-05-03
    • 2014-04-04
    • 2021-02-05
    相关资源
    最近更新 更多