我正在开发一个原型 Air for Android 应用程序,它加载一些远程 swf 文件(全部由我创建和控制),我需要能够将变量传递给远程 SWF。
以下是该过程当前工作方式的快速分解:
- 名为 Loader 的 Android 应用程序安装在设备上。
- Loader 指向我的服务器并找到 Player.swf,并将其加载到主阶段。Player.swf 显示登录屏幕。
- 当用户正确登录时,Player.swf 会收到来自 API 的 XML 响应,其中包含要为用户显示的远程 SWF 视频列表。Player.swf 循环遍历 XML 列表并一个接一个地播放每个远程 SWF。
现在,到目前为止,一切都很好。远程 SWF 视频加载并完美播放。但我需要开始从 Player.swf 中获取变量(从 XML 响应中提取)以在远程 SWF 中使用(例如文本字符串、用户 ID 等)
从我所做的所有搜索来看,我相信这取决于沙盒环境,因为 Loader 是一个已编译的应用程序,而 Player.swf + 远程 SWF 都来自服务器。但是,现在我想知道,因为 Player.swf 是具有处理 XML 响应的 AS3 代码的那个,并且与播放的远程 SWF 位于同一服务器上(因此应该是同一个沙箱? )
我能够使用 URL 参数传递一个变量,但它只能在本地工作,而不是在我使用 Android 应用程序时。
我找到了一个关于 Sandbox Bridges 的旧博客,但是示例文件下载不再起作用。
谁能指出我使用 parentSandboxBridge 函数/类传递变量的正确方向(我见过的所有示例都处理传递函数和/或为 Flex 编码)
我不能发布任何代码,因为我没有什么可以展示我想要实现的目标(我完全被这点难住了!)
编辑:我设法获取要传递的参数(即使它以前在本地工作,但它不适用于 Loader 应用程序 > 远程播放器 > 远程 SWF 动画组合)
我必须在 Player.swf 中设置应用程序域上下文(因为它与远程 swf 动画在同一台服务器上,不知道为什么我需要这样做)
但奇怪的是,我不能使用 parent 或 root 来获取变量?