Включение файлов конфигурации при компиляции приложения Flex с MXMLC - PullRequest
0 голосов
/ 17 мая 2010

Я использую: - Flex SDK 3.5.0 - петрушка 2.2.2. - Flash Builder 4

В моей папке src (которая настроена как часть исходного пути в Flash Builder) у меня есть файл logging.xml, который я настраиваю через Parsley:

            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

Вот тег 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>

А вот и командная строка:

\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 абсолютный путь. Это работало нормально, когда я компилировал с MXMLC через Ant, но все равно не работало, когда я использовал MXMLC в командной строке ...

Я был бы рад получить здесь разъяснение по всем предметам - использование MXMLC, доступ к ресурсам с относительными путями, настройка ведения журнала в Parsley и т. Д.

Большое спасибо заранее, Даниил

1 Ответ

0 голосов
/ 17 мая 2010

Ну, только теперь я могу понять, что происходит:

URLLoader внутри XmlContextBuilder попытался получить доступ к файлу локально (file: //).

Flash Builder скопировал файл из исходного местоположения (папка 'src') в целевое местоположение (папка 'bin-debug'), а затем он был найден URLLoader.

Когда я скомпилировал SWF-файл, я не копировал файл в целевое местоположение (папка 'target', как видно из сообщения об ошибке). Вот почему он не был найден ...

Теперь, я думаю, мне нужно лучше понять, как правильно получить доступ к XML-файлу ...

...