Pergunta

Estou apenas começando com o flex e estou usando o SDK (não o Flex Builder).Eu queria saber qual é a melhor maneira de compilar um arquivo mxml a partir de um script de construção ant.

Foi útil?

Solução

O Flex SDK é fornecido com um conjunto de tarefas ant.Mais informações em:

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

Aqui está um exemplo de compilação de Flex SWCs com ant:

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

câmaras de microfone

Outras dicas

Eu definitivamente escolheria as tarefas ant incluídas no Flex, elas tornam seu script de construção muito mais limpo.Aqui está um exemplo de script de construção que irá compilar e executar seu projeto 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>

Existe outra opção - é chamada Brotos do Projeto.

Este é um sistema construído com Ruby, RubyGems e Rake que fornece muitos dos recursos encontrados no Maven e ANT, mas com uma sintaxe muito mais limpa e scripts de construção mais simples.

Por exemplo, o script ANT mostrado acima ficaria assim no 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

Após instalar Ruby e RubyGems, você simplesmente chamaria este script com:

rake

Para remover arquivos gerados, execute:

rake clean

Para ver as tarefas disponíveis:

rake -T

Outro grande benefício do Sprouts, uma vez instalado, é que ele fornece geradores de projetos, classes e testes que deixarão qualquer caixa de desenvolvimento pronta para ser executada com algumas ações simples de linha de comando.

# 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

Se você estiver aberto ao Maven, experimente o plugin flex-compiler-mojo:

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

Christian

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top