如何使用命令行编译Flash .FLAs?
我正在使用Eclipse + FDT进行Flash开发,我想使用ANT来自动化编译。
我使用的是AS3,需要为Flash Player 10.1编译。
非常感谢
更新:我需要编译.FLAs,因为这是我从设计师那里得到的。
答案 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。