4

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

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

我正在使用 AS3,需要为 Flash Player 10.1 进行编译。

非常感谢

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

4

3 回答 3

5

总结一下其他答案中可能不明显的内容:FLA 文件并不完全是“源”,而更像是 Flash 创作工具的项目文件,唯一知道如何编译它们的是该工具。如果您有 Flash Professional 并且它是打开的,那么其他工具(或命令行)可能会告诉它编译,但这是您能做的最好的事情,除非您以某种方式更改您的工作流程 - 例如从您的设计者,或者您将脚本、SWC 等提供给设计者以供他们导入和编译。

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

于 2011-01-06T14:33:38.270 回答
2

在 flex sdk 文件夹中,有一个 ant/lib/flexTasks.jar 可以与 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 文件。

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

于 2010-11-03T01:08:18.743 回答
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 文件,那么这当然不能通过普通命令行完成 - 您需要使用JSFL 脚本来触发 Flash 并编译该文件

于 2010-11-01T14:27:02.530 回答