2010-05-17 15 views
0

J'utilise: - Flex SDK 3.5.0 - Persil 2.2.2. - Flash Builder 4Y compris les fichiers de configuration lors de la compilation d'une application Flex avec MXMLC

dans mon dossier src (qui est configuré en tant que partie du chemin source dans Flash Builder), j'ai un logging.xml que je configure via Persil:

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

Lorsque Je lance mon application via Flash Builder, le XmlContentBuilder semble localiser le fichier logging.xml (l'implémentation est une URLLoader standard).

Lorsque je compile mon application à l'aide MXMLC (que ce soit dans Ant ou de ligne de commande), puis exécutez le swf, je reçois l'erreur suivante:

Cause (0): Erreur lors du chargement com/société/produit/util/log/logging.xml: Erreur dans URLLoader - cause: Erreur # 2032: Erreur de flux. URL: fichier: /// C | /workspace/folder01/product/target/com/company/product/util/log/logging.xml - cause: Erreur # 2032: Erreur de flux. URL: file: /// C | /workspace/folder01/product/target/com/company/product/util/log/logging.xml

Voici la balise MXMLC Ant:

 <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> 

et voici la ligne de commande:

\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 

maintenant, peut-être que je ne comprends pas cela correctement, mais pour autant que je comprends le fichier SWF doit être compilé avec toutes les ressources dans les chemins que je donne MXMLC comme des chemins-sources . Pour une raison quelconque, il semble que le fichier XML n'est pas compilé dans le fichier SWF, par conséquent le chemin relatif de XmlContentBuilder n'est pas localisé avec succès.

Je n'ai trouvé aucun argument pour fournir le MXMLC qui pourrait résoudre ce problème.

J'ai essayé d'utiliser l'option -dump-config avec le compilateur de Flash Builder, puis j'ai donné cette configuration à MXMLC, mais cela ne fonctionnait pas non plus.

J'ai essayé de fournir à XmlContentBuilder un chemin absolu. Cela a bien fonctionné quand j'ai compilé avec MXMLC via Ant, mais je n'ai toujours pas travaillé quand j'ai utilisé MXMLC en ligne de commande ...

Je serais heureux d'être éclairé ici, en ce qui concerne tous les sujets - en utilisant MXMLC, l'accès aux ressources avec des chemins relatifs, configuration de la journalisation dans persil, etc.

Un grand merci à l'avance, Daniel

Répondre

0

Eh bien, que maintenant j'ai ccme de comprendre ce qui se passe:

le URLLoader à l'intérieur du XmlContextBuilder a tenté d'accéder au fichier localement (fichier: //).

Flash Builder a copié le fichier de son emplacement d'origine (le dossier 'src') vers l'emplacement cible (le dossier 'bin-debug'), puis il a été trouvé par le chargeur d'URL.

Lorsque j'ai compilé le fichier SWF, je n'ai pas copié le fichier vers mon emplacement cible (le dossier 'cible' comme indiqué dans le message d'erreur). C'est pourquoi il n'a pas été trouvé ...

Maintenant, je suppose que j'ai besoin d'une meilleure compréhension de la façon d'accéder correctement à un fichier XML ...