我想我在LocalConnection
通信设置中发现了一个 flash 错误,如此处所述。下面的站点不是我的,我只是用它来表明问题也发生在其他站点上:
如何重现:
http://fcontheweb.com/articles/localconnection/
如果您在 2 个浏览器窗口中打开该站点,请找到在 2 个 as3 组件之间发送消息的 as3 示例。
单击第一个浏览器窗口中的按钮:它将与消息框进行本地通信。如果您随后按下第二个浏览器窗口上的按钮,则不会发生任何事情。如果关闭第一个浏览器窗口,则必须在第二个窗口开始工作之前刷新页面。
我认为这是因为两个窗口中的 as3 对象的命名空间在浏览器的 flash 播放器插件中重叠,并且正在覆盖通信通道链接。
您可以通过再次打开 2 个窗口轻松验证我的假设,但现在先按下最后一个窗口中的按钮。该窗口中不会发生任何事情,但消息将显示在第一个窗口中!不知何故,没有创建最后一页的接收器,因为该名称的接收器已经存在于 flash 插件的对象存储中。
您能否确认这一点,更有趣的是,是否有人对此有解决方法?是否可以检测本地运行的 swf 实例数量并将其用作连接名称?
编辑:观察到的行为不是错误,而是预期的行为。但是我的问题仍然存在:如何让同一浏览器窗口内的页面使用LocalConnection
独立于同一系统上不同浏览器窗口中的相同页面的页面进行通信。