批量生成SWF文件

时间:2012-02-23 16:30:15

标签: flash

我们需要生成大约8,000个几乎相同的SWF文件,文本略有不同。我知道flashvars,但不幸的是,我们无法控制这些文件的发布,也无法传入flashvars。理想情况下,我正在寻找的是我们有一个flash设计师想出一个漂亮的模板对于我们在文件中使用占位符文本或元素。然后,我们可以多次调用命令行实用程序,通过略微修改的文本生成8,000个副本。

我现在搜索了整整一天,但没有找到任何帮助我们的东西。当然,我不是一个Flash开发人员,但看起来这很简单。

2 个答案:

答案 0 :(得分:1)

MXMLC为什么不工作?

目标SWF格式是什么?如果是8及以下,你可以尝试将MTASC与SWFMill结合使用(它需要代码和图形的文本源文件)。

SWF规范是开放的,有几个解析器可以分析不同程度的SWF文件。如果只是替换文本字段的内容,那么可能只需要重写一个包含文本字段的标记并更新文件头中的总文件大小。

如果您需要实时执行此操作,这实际上取决于SWF包含的代码量以及需要重新编译的代码量,但通常Haxe编译器比MXMLC快得多,对于小文件,它可以是可行的,根据要求编译它们,而不是预先编译所有这些并按需服务(取决于更昂贵的,编译所花费的时间,或服务器上的空间)。

编辑:说,你想使用MXMLC,你可以这样:

#!/usr/bin/env bash

for i in {0..8000}
do
    cp ./ClassWithText.template ./ClassWithText.as
    sed -i s/%pattern%/counter${i}/g ./ClassWithText.as
    mxmlc ./ClassWithText.as -o ./result-${i}.swf
done

注意:你可能无法全局访问mxmlc,因为它有一些硬编码路径,所以,你要使用编译器的绝对路径,但这个想法应该是相同的。

然后,比如说,你在ClassWithText.template文件中有这个文本:

var myText:String = "%pattern%";

它将转变为:

var myText:String = "counter0";

然后编译,“counter1”,然后编译等等。

答案 1 :(得分:0)

正如wvxvw所说,你可以使用mxmlc compiler,另一种可能是使用JSFL编写Flash IDE脚本。