【问题标题】:Batch generating SWF files批量生成 SWF 文件
【发布时间】:2012-02-23 16:30:14
【问题描述】:

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

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

【问题讨论】:

    标签: flash


    【解决方案1】:

    为什么 MXMLC 不起作用?

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

    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”,然后编译等等。

    【讨论】:

    • 大多数 Flash 开发人员都熟悉 MXMLC 吗?正如我所说,我对 Flash 几乎一无所知,但知道我们需要 8000 个文本稍有不同的物理 SWF 文件。我正在阅读 MXMLC 的文档,但对 Flash 开发一无所知,这很陌生。明天将与我们地区的 Flash 开发人员联系,但在此之前我想确保我知道我在寻找什么。
    • 感谢您的回答和示例。我会尽力找到可以帮助我们解决这个问题的人。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-01
      • 2016-01-23
      • 1970-01-01
      相关资源
      最近更新 更多