【问题标题】:Compile a SWC using COMPC, excluding 3rd party libs使用 COMPC 编译 SWC,不包括 3rd 方库
【发布时间】:2010-11-11 16:43:35
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: apache-flex actionscript-3 swc compc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为您不能只要求其他人具有依赖项。它可以使用第三方库作为运行时共享库​​,您将需要 url 上可用的第三方库,并在编译 -runtime-shared-libraries=http://www.yourhost.com/my.swf -external-library-path+=my.swc 时使用以下内容。 见Adobe docs for full details about RSLs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-06
        • 1970-01-01
        • 2013-05-02
        相关资源
        最近更新 更多