如何通过SWFLoader加载时指定ApplicationDomain.currentDomain?

时间:2011-01-26 05:04:04

标签: flex actionscript module applicationdomain

我正在使用Flex Builder 3来构建一个相当大的项目。我遇到了相互踩踏的模块以及应用程序/模块之间的冲突。我的结构如下所示:

主要应用 | - 应用程序2     | - 应用3     | --Application 3

(申请2是主申请的子女,而申请2和3是兄弟姐妹,申请2的子女)

实际上,它比这更复杂,但这就是问题的起点。最后,我可以让树有四层甚至五层深......如果可以让它起作用。主应用程序文件只包含一个画布和一系列按钮。第二个应用程序包含一个垂直选项卡导航器,其中画布作为容器,列表和两个选项卡中的树视图。应用程序3非常复杂,应用程序4中的事件日历也是如此。只要没有发生交互,一切都会加载并且看起来很好。在查看模块2和3时,两者都有ComboBoxes。第一个被访问的工作正常,但第二个抛出错误,我采取沙箱违规。我将应用程序2,3和4转换为模块,并使用ModuleLoader将它们引入并指定ApplicationDomain = currentDomain。现在,最后一个(现在模块)中的日历功能根本无法显示。我可以追踪值并抛出警告框,所以我知道它至少是加载,但没有任何显示。作为一个测试,我剥离了该模块,除了一个标签显示“测试”并且它显示正常,但是只要我将它放在Canvas组件中,就没有任何显示。但是,如果我将该模块转换回应用程序并使用SWFLoader加载它,它显示正常,但我确信,一旦我尝试引入另一个与之平行的应用程序,我就会回到我所在的位置入门。我可以轻松地使用so.data和LocalConnections来回传递信息,但是如何将SWF作为应用程序加载并指定应用程序域?将一切都作为currentDomain存在并且玩得很好会很好。

1 个答案:

答案 0 :(得分:2)

我不确定我是否真的理解您的模糊,但如果您的标题准确无误,您可能会发现the sample on this page有帮助。