0

我正在使用: - Flex SDK 3.5.0 - Parsley 2.2.2。- 闪存生成器 4

在我的 src 文件夹(在 Flash Builder 中配置为源路径的一部分)中,我有一个通过 Parsley 配置的 logging.xml:

            FlexLoggingXmlSupport.initialize();
        XmlContextBuilder.build("com/company/product/util/log/logging.xml");

当我通过 Flash Builder 运行我的应用程序时,XmlContentBuilder 似乎找到了 logging.xml(实现是一个常规的 URLLoader)。

当我使用 MXMLC(无论是在 Ant 还是命令行中)编译我的应用程序,然后运行 ​​swf 时,我收到以下错误:

原因(0):加载 com/company/product/util/log/logging.xml 时出错:URLLoader 中的错误 - 原因:错误 #2032:流错误。URL:file:///C|/workspace/folder01/product/target/com/company/product/util/log/logging.xml - 原因:错误 #2032:流错误。网址:file:///C|/workspace/folder01/product/target/com/company/product/util/log/logging.xml

这是 Ant 中的 MXMLC 标签:

        <mxmlc file="${product.src.dir}/com/company/product/view/Main.mxml" output="${product.target.dir}/${product.release.filename}" keep-generated-actionscript="false">
        <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" />

        <!-- source paths -->
        <source-path path-element="${FLEX_HOME}/frameworks" />
        <compiler.source-path path-element="${product.src.dir}" />
        <compiler.source-path path-element="${product.locale.dir}/{locale}" />

        <compiler.library-path dir="${product.basedir}" append="true">
            <include name="libs" />
        </compiler.library-path>

        <warnings>false</warnings>
        <debug>false</debug>
    </mxmlc>

这是命令行:

\mxmlc.exe -output "C:\temp\Rap.swf" -load-config "C:\Program Files\Adobe\Adobe Flash Builder 4 Plug-in\sdks\3.5.0\frameworks\flex-config.xml" -source-path "C:\Program Files\Adobe\Adobe Flash Builder 4 Plug-in\sdks\3.5.0\frameworks" C:\workspace\folder01\product\src C:\workspace\folder01\product\locale\en_US -library-path+=C:\workspace\folder01\product\libs -file-specs C:\workspace\folder01\product\src\com\company\product\view\main.mxml

现在也许我没有正确理解这一点,但据我所知,SWF 应该与路径中的所有资源一起编译,我将 MXMLC 作为源路径。由于某种原因,XML 文件似乎没有编译到 SWF 中,因此 XmlContentBuilder 的相对路径没有成功定位。

我找不到任何可以为 MXMLC 提供可能解决此问题的论据。

我尝试在 Flash Builder 的编译器中使用 -dump-config 选项,然后将该配置提供给 MXMLC,但它也不起作用。

我尝试为 XmlContentBuilder 提供绝对路径。当我通过 Ant 使用 MXMLC 编译时,它工作得很好,但是当我在命令行中使用 MXMLC 时仍然没有工作......

我很高兴在这里得到启发,关于所有主题 - 使用 MXMLC、使用相对路径访问资源、在 Parsley 中配置日志记录等。

非常感谢,丹尼尔

4

1 回答 1

0

好吧,直到现在我才知道发生了什么:

XmlContextBuilder 中的 URLLoader 尝试在本地访问文件 (file://)。

Flash builder 将文件从其原始位置(“src”文件夹)复制到目标位置(“bin-debug”文件夹),然后被 URLLoader 找到。

当我编译 SWF 时,我没有将文件复制到我的目标位置(如错误消息中所示的“目标”文件夹)。所以没找到...

现在,我想我需要更好地了解如何正确访问 XML 文件......

于 2010-05-17T08:29:38.570 回答