Как мне скомпилировать Flash .FLA с помощью командной строки? - PullRequest
4 голосов
/ 01 ноября 2010

как мне скомпилировать Flash .FLA с помощью командной строки?

Я использую Eclipse + FDT для разработки Flash, и я хотел бы использовать ANT для автоматизации компиляции.

Я использую AS3 и мне нужно скомпилировать для Flash Player 10.1.

Большое спасибо

Обновление: мне нужно скомпилировать .FLA, потому что это то, что я получаю от наших дизайнеров.

Ответы [ 3 ]

5 голосов
/ 06 января 2011

Подводя итог тому, что может быть неочевидно в других ответах: FLA-файлы не совсем «исходные», а больше похожи на файлы проекта для инструмента разработки Flash, и единственная вещь, которая знает, как их компилировать, - это этот инструмент.Если у вас есть Flash Professional, и он открыт, другие инструменты (или командная строка) могут сказать, что он должен скомпилироваться, но это лучшее, что вы можете сделать, если вы каким-либо образом не измените свой рабочий процесс - например, получить что-то кроме FLA из вашегоразработчики или предоставленные вами сценарии, SWC и т. д. дизайнерам для импорта и компиляции.

С учетом сказанного, в самой последней версии Adobe изменила FLA-файлы по сравнению с тем, что было раньше (Это дамп двоичной памяти (дамп инструмента разработки) в гораздо более доступную заархивированную папку, полную XML и изображений и т. д., поэтому в будущем для сторонних инструментов станет возможным сделать что-то полезное с FLA.Но на данный момент формат упомянутого XML еще не является стабильным, и я не слышал о каких-либо других инструментах, начинающих обрабатывать FLA.

2 голосов
/ 03 ноября 2010

В папке flex sdk есть файл ant / lib / flexTasks.jar, который можно использовать с ant для простой сборки приложений flex.

<?xml version="1.0" encoding="utf-8"?>
<!-- build.xml -->
<project name="My App Builder" basedir=".">
  <property name="FLEX_HOME" value="C:/flex/sdk"/>
  <taskdef resource="flexTasks.tasks"
      classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
  <property name="APP_ROOT" value="myApp"/>
  <target name="main">
      <mxmlc file="${APP_ROOT}/Main.mxml" keep-generated-actionscript="true">
          <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
          <source-path path-element="${FLEX_HOME}/frameworks"/>
      </mxmlc>
  </target>
</project>

EDIT

Формат FLA является монолитным и его трудно объединить. Конечно, вы можете сказать своим дизайнерам экспортировать FLA как SWF-файл из инструмента разработки или даже из из командной строки .

Но если вы добавляете скрипты AS3 и объединяете несколько файлов FLA вместе, вы можете пересмотреть свой конвейер. Возможно, дизайнеры должны дать вам MXML-файлов . MXML - это язык разметки XML, который вы используете для размещения компонентов пользовательского интерфейса. Затем создайте SWF-файл из командной строки, используя изображения, MXML и файлы AS.

1 голос
/ 01 ноября 2010

Если вы используете FDT, вам не нужно ничего делать.Поскольку местоположение Flex SDK (компилятора) известно, оно будет использовать его с необходимыми параметрами командной строки - просто создайте профиль запуска и используйте его.

ANT требуется только в том случае, если вы выполняете расширенные задачи.нужно выполнить до компиляции.И даже в этом случае вы можете установить задачу ANT с вашими командами, которые будут выполняться до запуска профиля запуска вместо компиляции в ANT.

Теперь, если вам действительно нужно скомпилировать изANT задача, вы используете что-то вроде этого ...

<target name="web_compileDebug">
    <exec executable="${flexdir}/bin/mxmlc.exe" failonerror="true">
        <arg line="'./source/org/package/DocumentClass.as'"/>
        <arg line="-source-path './source'"/>
        <arg line="-default-frame-rate=60"/>
        <arg line="-default-background-color=0xFFFFFF"/>
        <arg line="-default-size 640 480"/>
        <arg line="-strict=true"/>
        <arg line="-warnings=true"/>
        <arg line="-debug=true"/>
        <arg line="-output './deploy/index.swf'"/>
        <arg line="-target-player=10.0.0"/>
        <arg line="-use-network=false"/>
    </exec>
</target>

Конечно, замените это на ваши Flex SDK местоположения или переменные.

Если вы хотите скомпилировать .FLA-файлы, токонечно, это не может быть сделано обычной командной строкой - вам нужно использовать JSFL-скрипт, который запускает Flash и компилирует файл .

...