我正在使用: - Flex SDK 3.5.0 - 欧芹2.2.2。 - Flash Builder 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 - cause:错误#2032:流错误。 URL: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论据。
我尝试将-dump-config选项与Flash Builder的编译器一起使用,然后将该配置提供给MXMLC,但它也不起作用。
我尝试为XmlContentBuilder提供绝对路径。当我通过Ant使用MXMLC进行编译时工作正常,但是当我在命令行中使用MXMLC时仍然无效...
对于所有主题,我很高兴在这里开悟 - 使用MXMLC,使用相对路径访问资源,在Parsley中配置日志记录等。
非常感谢, 丹尼尔
答案 0 :(得分:0)
好吧,只有现在我才能明白发生了什么:
XmlContextBuilder中的URLLoader尝试在本地访问该文件(file://)。
Flash Builder将文件从其原始位置('src'文件夹)复制到目标位置('bin-debug'文件夹),然后由URLLoader找到它。
当我编译SWF时,我没有将文件复制到我的目标位置(错误消息中显示的'target'文件夹)。这就是为什么没找到......
现在,我想我需要更好地了解如何正确访问XML文件......