首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mxmlc和框架链接-如何将链接指定为rsl

mxmlc和框架链接-如何将链接指定为rsl
EN

Stack Overflow用户
提问于 2010-11-01 22:20:52
回答 1查看 6K关注 0票数 5

我正在尝试使用ant构建我的flex4项目。在Flash Builder 4中,在项目属性中,可以将“框架链接”设置为“合并到代码中”、“运行时共享库(RSL)”或“使用SDK默认值(运行时共享库)”之一。如何在build.xml中设置等同于mxmlc的选项?

我当前的build.xml如下所示:

代码语言:javascript
复制
<target name="myapp">
    <mxmlc 
        file="${PROJECT_ROOT}/myapp.mxml" 
        output="${DEPLOY_DIR}/myapp.swf"
        actionscript-file-encoding="UTF-8"
        keep-generated-actionscript="false"
        warnings="false" optimize="true" incremental="false" >

        <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> 

        <source-path path-element="${FLEX_FRAMEWORKS}"/> 

        <compiler.debug>true</compiler.debug>

        <runtime-shared-library-path path-element="${FLEX_FRAMEWORKS}/libs/framework.swc">
            <url rsl-url="framework_4.0.0.14159.swz"/>
            <url rsl-url="framework_4.0.0.14159.swf"/>
        </runtime-shared-library-path>                       

        <compiler.source-path path-element="src"/>

        <!-- List of external libraries -->
        <compiler.source-path path-element="${MY_LIB}/src" />

        <!-- List of SWC files or directories that contain SWC files. -->
        <compiler.library-path dir="libs" append="true">
            <include name="*.swc" />
        </compiler.library-path>

        <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swz"/>
        <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swf"/>

    </mxmlc>
</target>

我以为设置运行时共享库路径指令并将框架swf、swz文件复制到我的目标文件夹中就可以使程序正常工作,但事实似乎并非如此。

我评估这种方法是否有效的方法如下:我使用一个自定义的预加载器,为了让它起作用,我需要有RSL这样的框架链接。使用“合并到代码中”,我的预加载器在某个点被卡住,并且不会前进到我的应用程序swf。这是我在使用上面的build.xml时看到的相同行为,这让我认为SWF是通过合并到代码中的框架链接构建的(而不是RSL链接)。

与此相关的一个问题是如何确定我的swf是否使用RSL。我想我可以看看编译后的输出的大小。但似乎应该有一种方法来判断我是在使用外部框架文件,还是在我不知情的情况下以某种方式将其捆绑到SWF中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-23 01:22:51

这有点棘手,因为在这方面的文档有点稀缺。您可能需要在命令行或配置文件中设置以下选项。

static-link-runtime-shared-libraries=false

Adobe的文档对此选项的作用给出了以下略显含糊的描述。

决定是针对库进行静态编译,还是使用RSL。将此选项设置为true可忽略由运行时共享库路径选项指定的RSL。将此选项设置为false以使用RSL。默认值为true。

此选项非常有用,这样您就可以在静态链接应用程序和动态链接应用程序之间快速切换,而不必更改可能很冗长的运行时共享库路径选项,或者编辑配置文件。

这里有一个文档的链接。"About the application compiler options"

请注意,文档中的默认值为true。但是,如果您正在加载flex-config.xml文件(默认或自定义),您还应该检查该文件中是否存在此设置,以及它是什么。根据我的经验,framework/flex-config.xml的默认值实际上是false。然而,在上面的示例中,这似乎可以设置为另一种方式。

(我们使用与ANT不同的构建系统,所以我不太熟悉您需要的build.xml语法。)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4069679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档