apache-flex - 使用 COMPC 编译 SWC,不包括第 3 方库

标签 apache-flex actionscript-3 swc compc

我有一个自己构建的代码库。它依赖于 2 个其他(第三方)库。目前,当我将库编译成 swc 时,两个第三方库都包含在内。我正在寻找一种方法来针对第三方库编译我的代码库,但不将它们包含在已编译的 swc 中。

这显然意味着任何使用我的库的人都需要这两个库,但我更喜欢这样。我没有使用 Flex/Flashbuilder,我知道它允许您选择要包含在 swc 中的类。

谢谢

最佳答案

-external-library-path+=my.swc 是答案,尽管不需要使用 -runtime-shared-libraries。使用此参数允许您指定将在编译中使用但不放入 swc 中的代码。显然,在使用 swc 时仍然需要这个排除的 clode。

需要特别注意的是,与其他参数不同,-external-library-path 使用 += 而不是 =。通过仅使用 = 你将打破对玩家低级别类和添加的任何其他外部库的引用。

如果您正在使用带有 Ant 的 FlexTasks,您的目标可能如下所示:

<target name="compileToSWC">
    <compc 
        output="${bin}/${SWCName}">
            <source-path path-element="${src}"/>
            <!-- Source to include in SWC -->
            <include-sources dir="${src}" includes="*"/>
            <!-- Libs to exclude from the swc - Note append="true" which is equivillant to using +=-->
            <external-library-path file="${thirdparty.libs}/SomeLib.swc" append="true"/>
            <external-library-path file="${thirdparty.libs}/SomeOtherLib.swc" append="true"/>
    </compc>
</target>

您还可以将 external-library-path 指向一个文件夹,在这种情况下它将包含所有 swc。请注意,如果您遵循 Adob​​e 的 FlexTasks 指南并将 flexTasks.jar 文件放入您的 libs 文件夹并使用 external-library-path 将其定位为文件夹,则 flexTasks.jar 本身会被排除在外,从而导致构建失败。要解决这个问题,请将 flexTasks.jar 放在一个单独的文件夹中,或者像上面的示例一样直接定位您的 swcs

关于apache-flex - 使用 COMPC 编译 SWC,不包括第 3 方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143021/

相关文章:

actionscript-3 - 将对象带到前面 flash actionscript 3

actionscript-3 - 在 AS3/Flash 中,URL 请求/加载程序可以在不指定 http 或 https 协议(protocol)的情况下使用 "//"吗?

actionscript-3 - 你能在flash builder中调试swc吗

apache-flex - 找出 *.SWC 文件的包名称,以便我可以导入它

flash - swc文件转换成swf文件?

java - EJB 和 FLEX

apache-flex - Flash 播放器 10 Filereference.save 和文件扩展名

apache-flex - FileReference.load() 未填充 FileReference.data

actionscript-3 - 如何选择要在ActionScript 3.0中播放音频的扬声器?

actionscript-3 - 从 AS3 中的监听器获取点击坐标