我即将开始在一对SWF中使用LocalConnections让他们互相交谈。但在我走这条路之前,我需要确保它不会导致系统出现任何弹出窗口和确认对话框。
如果我使用本地套接字服务器,则会导致Windows防火墙和许多其他人标记它并需要确认。因此,如果LocalConnection使用套接字,那么我就无法使用它。
但是我通过一些网络搜索读到,它实际上使用共享内存,这不会导致任何防火墙抱怨。
使用LocalConnection的任何人都可以确认或否认它会导致主机操作系统出现问题吗?特别是Win7 / Vista。
答案 0 :(得分:2)
我一直在使用LocalConnection
(用于查看我的服务器托管的SWF的跟踪消息),并且从未见过任何弹出窗口。 LocalConnection
的{{3}}页面表示:
在ActionScript 3.0中创建的LocalConnection对象可以与在ActionScript 1.0或2.0中创建的LocalConnection对象进行通信。反之亦然。 Flash Player会自动处理不同版本的LocalConnection对象之间的此通信。
所以我想可以安全地假设flash播放器负责使用LocalConnection在swfs之间进行通信,并且不会涉及弹出窗口。
答案 1 :(得分:1)
我找到this link,证明LocalConnections使用与互斥锁同步的共享内存。
但它有点旧(2007年),我目前正在使用AS3使用Flash 10播放器。
答案 2 :(得分:1)
我在具有相当广泛的QA测试的环境中使用了LocalConnection。关于它有一些奇怪的事情,但总的来说,它似乎可以在各种平台上可靠地工作而不会对用户产生影响。
奇怪之处:我们遇到的一个问题是,在计算机上的Flash播放器的所有实例都已关闭之前,内存文件和互斥锁不会被释放。在其中一个Flash播放器实例死亡或被杀死且未释放LocalConnection的情况下,这是一个问题。仲裁器可以传递闪存,告诉每个SWF在运行时使用哪些本地连接允许您每次指定新的本地连接。当然,如果这种情况发生了很多,它会通过填满内存来加剧这个问题......
另一个问题是,似乎(仅从观察 - 没有证据支持声明)互斥实现可能有些幼稚。向单个本地连接添加过多的侦听器/发件人有点不可靠。我们通过简单地使用LocalConnections作为单向调度,一个发送器,一个接收器来避免此问题。这个问题已经很好地描述了here