Compilando arquivos mxml com ant e flex sdk
-
09-06-2019 - |
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.
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