如何在Ubuntu服务器上使用命令行从FLA生成SWF



我有一种情况,需要从用户上传到服务器的FLA生成SWF。我们使用python和bash脚本,并在Ubuntu Server 1004(64位)上工作,任何关于如何生成SWF的帮助都将是一个很大的帮助。

谢谢。

Flash需要Flash IDE进行编译。您可能可以在linux上使用flex AS3编译器编译代码,但如果Flash中有图形元素,则无法编译它们。

然而,我们也遇到了类似的情况,我们通过在MAC OS X Snow Leopard(10.6)中安装Flash来解决这个问题,然后编写了一些php、一些shell脚本、一些appscript,并为AS3创建了命令行编译机制。

Mac OS X是一个基于unix的操作系统,因此命令行与任何其他unix类似。它附带了内置php,所以您不必安装任何东西。基本上,我们使用脚本动态生成一个名为.jsfl文件的文件。jsfl包含需要编译的.fla的详细信息。这些jsfl文件可以由Flash IDE执行。因此,我们调用flash IDE并传递生成的.jsfl文件。(http://gskinner.com/blog/archives/2004/08/jsfl_fla_batch.html)

这个gskinner进程也适用于windows,但使用mac我们可以使它成为命令行。这样用户就可以通过ssh连接到mac并执行命令来构建文件。

FLA文件格式在最新版本的Flash中发生了显著变化。新的FLA是包含源文件和资产的档案,所以你可以编写一个脚本来打开FLA并从中组装SWF。以前版本的FLA包含专有格式,没有文档,也没有工具可以自动处理它,当然在Linux上也没有。

根据ActionScript版本和您对资源处理的要求(我所说的资源是指图像、字体、音轨、视频等),有几个选项可用:

  1. 博客文章@ntidote中提到的Flex SDK有些过时,但它还可以/应该可以。您需要查阅MXMLC的使用文档,以了解所有可用选项(以及一些新的必需选项,博客文章中没有涉及)。如果您的目标是编译AS3,那么这就是您可以做的。这不包括视频转码,您可能会发现嵌入矢量图形很有挑战性。然而,MXMLC能够编译SVG的很大一个子集。它还可以编译FXG——一种新的交换图形格式,可以描述矢量形状和文本。

  2. ActionScript2也可以编译,但Flex没有提供编译器。有一个非常好的,事实上比Adobe编写的要好得多的AS2编译器:http://tech.motion-twin.com/mtasc.html。

还有其他工具可以生成SWF-这取决于你到底需要做什么。以下是不同实用程序的好集合:http://www.swftools.org/

Haxe是另一种可以编译为SWF的编程语言。它也有自己的链接器和管理资源的方法。http://haxe.org/

有一个项目,它允许您从XML描述中编译复杂的矢量图形甚至动画:http://code.google.com/p/hxswfml/

最新更新