Компиляция mxml файлов с помощью ant и flex sdk - PullRequest
7 голосов
/ 17 сентября 2008

Я только начинаю работать с flex и использую SDK (не Flex Builder). Мне было интересно, как лучше всего скомпилировать файл mxml из скрипта сборки ant.

Ответы [ 4 ]

10 голосов
/ 17 сентября 2008

Flex SDK поставляется с набором задач муравья. Больше информации на:

http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html

Вот пример компиляции Flex SWC с помощью ant:

http://www.mikechambers.com/blog/2006/05/19/example-using-ant-with-compc-to-compile-swcs/

микрофонные камеры

5 голосов
/ 21 октября 2008

Я бы определенно согласился с задачами ant, которые включены в Flex, они делают ваш скрипт сборки намного чище. Вот пример сценария сборки, который скомпилирует и запустит ваш проект flex

<?xml version="1.0"?>

<project name="flexapptest" default="buildAndRun" basedir=".">

    <!-- 
        make sure this jar file is in the ant lib directory 
        classpath="${ANT_HOME}/lib/flexTasks.jar" 
    -->
    <taskdef resource="flexTasks.tasks" />
    <property name="appname" value="flexapptest"/>
    <property name="appname_main" value="Flexapptest"/>
    <property name="FLEX_HOME" value="/Applications/flex_sdk_3"/>
    <property name="APP_ROOT" value="."/>
    <property name="swfOut" value="dist/${appname}.swf" />
    <!-- point this to your local copy of the flash player -->
    <property name="flash.player" location="/Applications/Adobe Flash CS3/Players/Flash Player.app" />

    <target name="compile">
        <mxmlc file="${APP_ROOT}/src/${appname_main}.mxml"
            output="${APP_ROOT}/${swfOut}" 
            keep-generated-actionscript="true">

            <default-size width="800" height="600" />
            <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
            <source-path path-element="${FLEX_HOME}/frameworks"/>
            <compiler.library-path dir="${APP_ROOT}/libs" append="true">
                <include name="*.swc" />
            </compiler.library-path>
        </mxmlc>
    </target>

    <target name="buildAndRun" depends="compile">
        <exec executable="open">
            <arg line="-a '${flash.player}'"/>
            <arg line="${APP_ROOT}/${swfOut}" />
        </exec>
    </target>

    <target name="clean">
        <delete dir="${APP_ROOT}/src/generated"/>
        <delete file="${APP_ROOT}/${swfOut}"/>
    </target>

</project>
3 голосов
/ 04 ноября 2009

Есть еще один вариант - он называется Проектные ростки .

Это система, построенная на Ruby, RubyGems и Rake, которая предоставляет многие функции, имеющиеся в Maven и ANT, но с гораздо более чистым синтаксисом и более простыми скриптами сборки.

Например, скрипт ANT, показанный выше, будет выглядеть следующим образом в Sprouts:

require 'rubygems'
require 'sprout'

desc 'Compile and run the SWF'
flashplayer :run => 'bin/SomeProject.swf'

mxmlc 'bin/SomeProject.swf' do |t|
  t.input = 'src/SomeProject.as'
  t.default_size = '800 600'
  t.default_background_color = '#ffffff'
  t.keep_generated_actionscript = true
  t.library_path << 'libs'
end

task :default => :run

После установки Ruby и RubyGems вы бы просто вызвали этот скрипт с помощью:

rake

Чтобы удалить сгенерированные файлы, запустите:

rake clean

Чтобы просмотреть доступные задачи:

rake -T

Еще одно большое преимущество Sprouts после его установки заключается в том, что он предоставляет генераторы проектов, классов и тестов, которые подготовят к запуску любой блок разработки с помощью пары простых действий командной строки.

# Generate a project and cd into it:
sprout -n mxml SomeProject
cd SomeProject

# Compile and run the main debug SWF:
rake

# Generate a new class, test case and test suite:
script/generate class utils.MathUtil

# Compile and run the test harness:
rake test
0 голосов
/ 17 сентября 2008

Если вы открыты для Maven, попробуйте плагин flex-compiler-mojo:

http://code.google.com/p/flex-mojos/

Кристиаан

...