有些方法可以在不使用Flash的情况下更改SWF的文本?

时间:2013-12-05 03:22:42

标签: actionscript-3 flash actionscript

我有一个带有一些文字的FLA,但是发送SWF的人没有Flash,也不了解Flash。

有没有办法构建FLA,只需通过某种方式修改SWF就可以更改文本?由于公司政策,SWF无法读取外部文件。

我们尝试在FLA中编程,它在另一台服务器上读取XML,但这是不允许的。我也不能用另一个文件(即一个xml文件)发送SWF。

感谢。

3 个答案:

答案 0 :(得分:2)

使用FLASMSWFMILL作为swf文件的免费命令行汇编程序/反汇编程序。使用任何一个来拆卸您的瑞士法郎。您可以在任何文本编辑器中打开结果文件, 查找并替换文本 ,然后再将其组合为swf。希望它有所帮助。

答案 1 :(得分:1)

尝试在没有Flash的情况下修改FLA文件是一种奇怪的逻辑。 FLA文件是一个二进制文件,你需要一个编辑器来阅读它,我很确定Adobe不允许合法的第三方编辑。

但是,是的,拥有一个动态TextField可以发送参数并更改数据。请注意 - 您需要发送数据。意味着它必须来自外部。

有哪些选择?嗯,实际上,很少有:

  • 从外部文件加载或从服务器端脚本获取。你说这是不允许的,让我们省略这种方法。
  • 阅读FlashVars。如果您在HTML页面中发布它,您实际上可以通过FlashVars提供一些数据。不仅有1个变量,而且可以满足您的需求。它对小字符串很好,但是如果你打算传递一个大于句子的文本......不要这样做。
  • 作为一个有趣的黑客,您可以尝试使用您想要的文本命名您的文件,并阅读SWF的URL,从而显示其名称并将其用作文本数据。但是不要这样做:)左 ^
    如果您想尝试它,可以使用stage.loaderInfo.url访问URL,只需确保定义了一个阶段 - 在文档类中调用或在您调用的显示对象之后添加到阶段。
  • 使用ExternalInterface与JavaScript进行通信,并从JavaScript获取变量。它实际上并没有那么糟糕,因为你的文本将整齐地存储在.js文件中,你可以在运行时修改它。那当然是一个单独的文件,您需要将SWF嵌入HTML中,但这是您拥有的选项之一。

除此之外,您可以拥有一个外部文件来保存数据并将其嵌入SWF中。详细了解嵌入此处:http://flashgamedojo.com/wiki/index.php?title=Embedding_XML_in_AS3。它是关于嵌入XML数据,但您可以将该技术用于任何数据,甚至是二进制数据。 嵌入数据是一件好事,但每次在文件中进行更改时都需要重新编译,因为它不是动态加载文件,而是在编译时将其嵌入到SWF本身。

希望有所帮助!

答案 2 :(得分:0)

JPEXS Decompiler 可以非常轻松地更改 SWF 中的文本。到 2021 年,它仍在积极开发中。