Ich bin gerade mit dem Flex und verwende das SDK (nicht Flex Builder). Ich habe mich gefragt, was der beste Weg ist, eine mxml-Datei aus einem Ameisen-Build-Skript zu kompilieren.Kompilieren von mxml-Dateien mit ant und flex sdk
Antwort
Das Flex-SDK wird mit einer Reihe von Ant-Tasks ausgeliefert. Mehr Infos unter:
http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html
Hier ist ein Beispiel für die Erstellung Flex SWCs mit ant:
http://www.mikechambers.com/blog/2006/05/19/example-using-ant-with-compc-to-compile-swcs/
mike Kammern
Wenn Sie Maven sind offen, versuchen Sie die flex -compiler-mojo plugin:
http://code.google.com/p/flex-mojos/
Christiaan
Ich würde definitiv mit den Ant-Aufgaben gehen, die mit Flex enthalten sind, sie machen Ihr Build-Skript so viel sauberer. Hier ist ein Beispiel-Build-Skript, das kompiliert und dann flex Projekt läuft
<?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>
Es gibt eine andere Option - es ist Project Sprouts genannt.
Dies ist ein System mit Ruby, RubyGems und Rake, das viele der Funktionen in Maven und ANT bietet, aber mit einer viel saubereren Syntax und einfacheren Build-Skripten.
Zum Beispiel kann der ANT-Skript oben würde wie folgt in Sprouts aussehen gezeigt:
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
Nach der Installation von Ruby und RubyGems, würden Sie einfach dieses Skript aufrufen mit:
rake
erzeugt entfernen Dateien, laufen:
rake clean
verfügbaren Aufgaben zu sehen:
Ein weiterer großer Vorteil von Sprouts, sobald es installiert ist, ist, dass es Projekt-, Klassen- und Testgeneratoren bereitstellt, die jede Entwicklungsumgebung mit ein paar einfachen Befehlszeilenaktionen zum Laufen bringen.
# 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
Danke für die Einführung in Rake, aber ich habe über Ameisen gesucht. BTW, das Shell-Skript "mxmlc" wird eine Zeile sein. – chro
Kann ich irgendwo eine mxmlc-SWC-Datei bekommen oder muss ich sie selbst kompilieren? Ich bin in der Lage, ActionScript mit dem mxmlc ant-Tag zu kompilieren, aber das gleiche Skript funktioniert nicht für mxml-Dateien. Ich habe versucht, die Java-Jar-Datei in meinem Ziel zu verwenden, aber ohne Erfolg. Vielen Dank! – sutee