Flex / FlexBuilder:将大型依赖项编译为模块而不是主应用程序

时间:2010-07-20 22:00:17

标签: flex flexbuilder

我有一个模块,MyModule需要一个大型库:

<mx:Module>
    <mx:Script><![CDATA[
        import com.huge.library.AwesomeThing;
        var myThing:* = new AwesomeThing()
    ]]></mx:Script>
    ...
</mx:Module>

除了MyModule

之外,我的主应用程序未引用该大型库
<mx:Application>
    <MyModule />
</mx:Application>

但是当我使用Flex Builder构建时,{em>应用程序 swf中包含com.huge.library而不是模块 swf,正如我所期望的那样。

那么,有什么方法可以让Flex Builder将com.huge.library放入MyModule.swf而不是MyApp.swf

2 个答案:

答案 0 :(得分:2)

如果您的示例代码是如何引入模块的话,答案是使用ModuleLoader而不是直接引用主应用程序中的模块。您的应用应该更像:

<mx:Application>
    <mx:ModuleLoader />
</mx:Application>

你应该通过类似于loadModule(“myModule.swf”)来加载模块。 祝你好运, 杰里米

答案 1 :(得分:0)

您是否在主应用程序中引用了您的模块?有些东西将它链接到主应用程序,否则它将不会被包括在内。

检查主应用中的链接报告,了解相关性的确定位置。

在FB 3中,步骤是。

打开项目的属性

Flex编译器选项卡

将-link-report = true添加到其他编译器参数。

构建应用程序。

检查链接报告.1.2.3.4.1.1。

从评论中编辑。

运行模块的链接报告,并将其削减为纯粹要排除的依赖项。

现在在主应用程序的其他编译器参数中添加以下行

-load-实习医生= report.xml将

报告是削减的下行链接报告。

这将阻止在您的主应用程序中链接依赖项。