私が使用している: - 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: ストリーム エラー。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
おそらくこれを正しく理解していないかもしれませんが、私が理解している限り、MXMLC をソースパスとして指定したパス内のすべてのリソースを使用して SWF をコンパイルする必要があります。何らかの理由で、XML ファイルが SWF にコンパイルされていないように見えるため、XmlContentBuilder の相対パスが正常に見つかりません。
これを解決する可能性のある MXMLC を提供する引数が見つかりませんでした。
Flash Builder のコンパイラで -dump-config オプションを使用して、その構成を MXMLC に渡そうとしましたが、どちらも機能しませんでした。
XmlContentBuilder に絶対パスを指定してみました。Ant 経由で MXMLC を使用してコンパイルした場合は問題なく動作しましたが、コマンドラインで MXMLC を使用した場合はまだ動作しませんでした...
MXMLC の使用、相対パスを使用したリソースへのアクセス、Parsley でのログの構成など、すべての主題に関して、ここで啓発していただければ幸いです。
よろしくお願いします、ダニエル