【发布时间】:2012-08-14 08:36:45
【问题描述】:
这不是关于从同一域加载 SWF。
有一个小的 SWF 文件应该从SharedObject 加载/保存数据。它驻留在专用域中(我们称之为域 A)。
有几个应用程序需要以共享方式访问上述数据(即来自不同域(B、C、D、...)的所有应用程序。自然,在应用程序内使用 SharedObject 会赢不要这样做,因为 SharedObject 是每个域的。
- 从域 B 中的应用程序中,我从域 A 加载策略文件。策略文件允许通过“*”和域“B”的所有域。
- 我在应用程序中通过
allowDomain("A")允许域A - 我允许通过
allowDomain("B")在数据处理 SWF 中的域 B - 我正在添加 loaderContext,如下所示:
new LoaderContext(true, new ApplicationDomain(), SecurityDomain.currentDomain);。我明确需要加载的 SWF 来保留它自己的域“A”上下文,以便SharedObject将写入“A”命名空间而不是托管应用程序的命名空间(“B”),因此“new ApplicationDomain()”
使用SWFLoader加载数据处理SWF。
如果我理解正确,以上所有内容都应该能够访问加载的 SWF 的类成员。正如您现在可能已经猜到的那样,它并没有真正起作用。当我尝试将 SWFLoader 的内容转换为 SWF 的文档类时,由于安全问题,它是 null(我尝试使用 ApplicationDomain.currentDomain 加载并且效果很好,所以我知道类是相同的,但不是什么我需要)
我错过了什么? 或者有没有更好的解决方案在不同域的应用程序之间本地共享数据?
【问题讨论】:
标签: actionscript-3 apache-flex cross-domain