我目前维护一个用 Flash 8 (AS2) 编写的应用程序,用于嵌入和控制一些自动生成的 SWF。自动生成的 SWF 也是 Flash 8(实际上,它们至少在 7 中工作,甚至可能更早),因此我当前的应用程序能够直接引用嵌入式 SWF 中的变量和函数。
我们现在正在开发这个应用程序的新版本,用 Flex 编写。我们需要复制当前应用程序的嵌入和控制自动生成的 AS2 SWF 的功能。但是,基于 AS3 的 SWF 不能引用嵌入的基于 AS2 的 SWF 中的变量或函数。不幸的是,我们无法控制自动生成工具,因此我们无法将其更改为输出基于 AS3 的 SWF。
让 AS3 和 AS2 SWF 进行通信的唯一真正解决方案是使用 LocalConnection。我需要创建一个包装器 AS2 SWF,它会加载自动生成的 SWF 并充当代理,通过 LocalConnection 与我的 Flex 应用程序通信并对自动生成的 SWF 执行任何需要执行的操作。但是,这有一个问题。代理 SWF 需要知道要使用的 LocalConnection ID,但我找不到与它通信 ID 的方法(我不能硬编码一些随机 ID,因为我需要能够支持多个实例应用程序同时)。
有没有人解决这个问题?有没有办法为嵌入式 SWF 获取某种唯一标识符?