我刚开始使用flex并且正在使用SDK(不是Flex Builder)。 我想知道从ant构建脚本编译mxml文件的最佳方法是什么。

===============>>#1 票数:10 已采纳

Flex SDK附带了一组ant任务。 更多信息:

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

以下是使用ant编译Flex SWC的示例:

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

迈克室

===============>>#2 票数:5

我肯定会使用Flex附带的ant任务,它们使您的构建脚本更加清晰。 这是一个示例构建脚本,它将编译然后运行您的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 票数:3

还有另一种选择 - 它叫做Project Sprouts

这是一个使用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

===============>>#4 票数:0

如果您对Maven开放,请尝试使用flex-compiler-mojo插件:

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

克里斯蒂安

  ask by sutee translate from so

未解决问题?本站智能推荐:

1回复

将Flex模块与ant中的其他mxml文件一起编译为swf

我有一个包含许多mxml和as文件的大型项目,正在尝试使用ant将它们全部编译成一个工作的swf文件。 但是,我在用ant正确编译main.swf时遇到了麻烦。 它似乎并没有引入必要的模块,所有模块都位于src主文件夹中的单独文件夹中。 它将编译而没有错误,但是当我打开swf文件时
1回复

Flex 4模块和Ant-错误:无法将“”解析为组件实现

我可以编译主应用程序,但是在编译嵌套模块时遇到问题。 我具有以下应用程序结构: src MyApp.mxml 视图 MyView.mxml 模组 MyModule.mxml
1回复

使用Apache flex 4.9.1 SDK的MXML应用程序是否可以与falcon一起自动编译?

我是否正确理解了以下假设? ASC 2.0用于编译纯Actionscript项目,Falcon用于编译MXML应用程序,Apache Flex 4.9.1 SDK使用Falcon无需任何其他配置即可自动编译,无法在Flash催化剂中使用Flash builder 4.7 FXP(无论使用的SD
3回复

Flex:Flex项目中未使用的mxml和.as文件

我正在尝试通过删除所有未使用的(mxml,xml和image)文件来使项目更轻松。 目前,我正在手动搜索每个图像,然后删除未使用的文件。 但是有没有一种方法可以使我们自动获得未使用文件的列表。 我正在尝试使用4.0 sdk中的swfDump.jar。 但是,这是可行的,因为它正在处理使用
3回复

Flex条件编译MXML?

在Flex中,现在可以使用-define编译器选项来执行各种很酷的操作。 在我的程序中,我使用的选项使得我的一些代码被这样的块排除: 而且效果很好。 如何使用MXML获得类似的行为? 我想做同样的事情,但是以这种方式省略/包括MXML标签,而不是AS代码块。
1回复

指定MXML文件包(Flex)

如何指定MXML文件的包? 我可以通过仅用包声明将其包装来轻松设置ActionScript类的包,但是如何在MXML文件中执行相同的操作? 我的问题是我无法使用与主要MXML文件不在同一文件夹中的MXML文件。 对于结构,我想这样创建子文件夹: 如果要在Main.mxml中使用
1回复

如何将ActionScript“类”与Flex MXML文件一起使用?

到目前为止,我已经完全被这个问题困扰了,已经花了几天的时间,而我一直关注的大多数链接以及我所做的搜索都使我一无所获。 我想用鼠标界面制作一个简单的游戏,但我也想添加一个预加载器。 我最初使用的是minibuilder,因为它是跨平台的,并且我在Linux上,但是我看到的所有添加预加载器的
3回复

Flex-AS3与MXML-编译速度是否有所不同,mxml编译器如何工作?

MXML是否可以编译为as3,然后转换为Flash字节码? 另外,编译mxml与编译as3是否会对性能造成重大影响?
1回复

使用Eclipse中的Flex Builder插件在操作脚本中导入mxml文件时遇到问题

我正在尝试创建一个Flex应用程序,但是面临一个奇怪的问题,我创建了一个程序包来分别保存我的mxml文件和单独的动作脚本文件。 但是我面临的问题是,当我尝试在我的mxml应用程序主文件的动作脚本中导入.mxml组件之一时,我无法做到这一点。能否有人帮助我将一个mxml文件导入到其他mxml中文
2回复

在Flex和普通的actionscript类中使用MXML文件会有哪些开销?

我发现用嵌入式脚本编写MXML类比尝试制作一个动作脚本文件要容易得多。 但是我想知道使用MXML文件会产生什么样的开销-就文件大小而言。 我并不特别关注性能,但是如果相关的话,会对任何发现感兴趣。 显然,我在谈论具有布局的UI组件。 MXML更容易可视化和修改,但是我不清楚它到底