如何使用命令行编译Flash .FLAs?

时间:2010-11-01 12:02:37

标签: flash ant fdt

如何使用命令行编译Flash .FLAs?

我正在使用Eclipse + FDT进行Flash开发,我想使用ANT来自动化编译。

我使用的是AS3,需要为Flash Player 10.1编译。

非常感谢

更新:我需要编译.FLAs,因为这是我从设计师那里得到的。

3 个答案:

答案 0 :(得分:5)

总结在其他答案中可能不明显的内容:FLA文件并不完全是“源”,但更像是Flash创作工具的项目文件,而且唯一知道如何编译它们的是该工具。如果您拥有Flash Professional并且它已打开,则其他工具(或命令行)可以告诉它进行编译,但除非您以某种方式更改工作流程,否则这是您可以做的最好的 - 例如从您的工作流程中获取FLAs以外的其他工具设计师,或者您向设计人员提供脚本,SWC等,以便他们进行导入和编译。

据说,在最新版本中,Adobe已将FLA文件从以前的版本(创作工具的二进制内存转储)更改为更易于访问的压缩文件夹,其中包含XML和图像等等,因此,将来第三方工具应该可以使用FLA做一些有用的事情。但目前,所述XML的格式显然还不稳定,我还没有听说过任何其他工具开始处理FLA。

答案 1 :(得分:2)

在flex sdk文件夹中,有一个ant / lib / flexTasks.jar可以used with ant轻松构建flex应用程序。

<?xml version="1.0" encoding="utf-8"?>
<!-- build.xml -->
<project name="My App Builder" basedir=".">
  <property name="FLEX_HOME" value="C:/flex/sdk"/>
  <taskdef resource="flexTasks.tasks"
      classpath="${FLEX_HOME}/ant/lib/flexTasks.jar"/>
  <property name="APP_ROOT" value="myApp"/>
  <target name="main">
      <mxmlc file="${APP_ROOT}/Main.mxml" keep-generated-actionscript="true">
          <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
          <source-path path-element="${FLEX_HOME}/frameworks"/>
      </mxmlc>
  </target>
</project>

修改

FLA格式有点单一,很难合并。当然,您可以告诉设计人员将FLA从创作工具导出为SWF文件,甚至可以从from the command line导出。

但是,如果要添加AS3脚本并将多个FLA文件合并在一起,则可能需要重新考虑管道。也许设计师应该给你MXML files。 MXML是一种XML标记语言,可用于布置用户界面组件。然后使用图像,MXML和AS文件从命令行构建SWF。

答案 2 :(得分:1)

如果您正在使用FDT,则无需执行任何操作。只要Flex SDK(编译器)位置已知,它就会将它与所需的命令行参数一起使用 - 只需创建一个启动配置文件并使用它。

如果您在编译之前需要执行高级任务,则只需要ANT。即使在这种情况下,您也可以设置一个ANT任务,在运行启动配置文件之前运行您的命令,而不是在ANT中编译。

现在,如果真的需要从ANT任务编译,你可以使用这样的东西......

<target name="web_compileDebug">
    <exec executable="${flexdir}/bin/mxmlc.exe" failonerror="true">
        <arg line="'./source/org/package/DocumentClass.as'"/>
        <arg line="-source-path './source'"/>
        <arg line="-default-frame-rate=60"/>
        <arg line="-default-background-color=0xFFFFFF"/>
        <arg line="-default-size 640 480"/>
        <arg line="-strict=true"/>
        <arg line="-warnings=true"/>
        <arg line="-debug=true"/>
        <arg line="-output './deploy/index.swf'"/>
        <arg line="-target-player=10.0.0"/>
        <arg line="-use-network=false"/>
    </exec>
</target>

当然,请将其替换为Flex SDK位置或变量。

如果您要编译.FLA文件,当然这是普通命令行无法完成的 - 您需要使用a JSFL script that fires Flash and compiles the file