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

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

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

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

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

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


person daniel.sedlacek    schedule 01.11.2010    source источник


Ответы (3)


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

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

person fenomas    schedule 06.01.2011
comment
Спасибо, ребята, вы мне открыли глаза, мне придется изменить свой рабочий процесс. Я использую полные имена классов в качестве идентификаторов связывания библиотек - я сохраню их, за исключением того, что определения классов не будут доступны из обложки FLA, поэтому при компиляции будут созданы пустые классы. Классы скинов будут определены в моем основном FLA-файле, который я буду компилировать с помощью Flex или чего-то подобного, и я загружу FLA-файл обложки в текущий домен приложения, чтобы пустые классы обложек были заменены определениями из main. - person daniel.sedlacek; 07.01.2011

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

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

РЕДАКТИРОВАТЬ

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

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

person milkplus    schedule 03.11.2010
comment
Могу ли я использовать его для компиляции файлов FLA? - person daniel.sedlacek; 03.11.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 и компилирующий файл.

person zeh    schedule 01.11.2010
comment
К сожалению, это все, мне нужно скомпилировать .FLA, потому что это то, что я получаю от наших дизайнеров. - person daniel.sedlacek; 01.11.2010
comment
Тогда ссылка с решением находится выше, вы просто запускаете IDE с помощью сценария JSFL. - person zeh; 01.11.2010
comment
Лучше не думать о файлах FLA как об источнике Flash. На самом деле это файлы проекта для инструмента разработки flash, поэтому нет возможности скомпилировать их во что-либо, если для компиляции не открыто создание flash. - person fenomas; 02.11.2010
comment
Спасибо, ребята, вы мне открыли глаза, мне придется изменить свой рабочий процесс. Я использую полные имена классов в качестве идентификаторов связывания библиотек - я сохраню их, за исключением того, что определения классов не будут доступны из обложки FLA, поэтому при компиляции будут созданы пустые классы. Классы скинов будут определены в моем основном FLA-файле, который я буду компилировать с помощью Flex или чего-то подобного, и я загружу FLA-файл обложки в текущий домен приложения, чтобы пустые классы обложек были заменены определениями из main. - person daniel.sedlacek; 07.01.2011