不使用Flash,有什么方法可以更改SWF文本?

3
我有一个包含一些文本的FLA文件,但将发送SWF文件的人没有Flash并且对Flash也一无所知。
有没有办法构建FLA文件,使得可以通过修改SWF文件轻松更改文本呢?由于公司政策的原因,SWF文件无法从外部文件中读取。
我们尝试编程进入FLA文件,让它在另一个服务器上读取XML文件,但是这是不允许的。我也不能发送带有其他文件(如xml文件)的SWF文件。
谢谢。
3个回答

2

使用FLASMSWFMILL进行工作,它们都是免费的命令行汇编/反汇编工具,适用于swf文件。你可以使用其中任意一个对swf进行反汇编。接着,你可以在任何文本编辑器中打开结果文件,查找和替换你的文本,再将其重新组装为swf格式。希望这有所帮助。


1

如果没有安装Flash,试图修改FLA文件是一种奇怪的逻辑。FLA文件是一个二进制文件,需要使用编辑器读取,我相信Adobe不允许第三方编辑器合法地进行编辑。

但是,可以使用动态TextField,在其中发送参数并更改数据是可以的。请注意-您需要发送数据。这意味着它必须来自外部。

有什么选择?实际上,有很少:

  • 从外部文件加载或通过服务器端脚本获取数据。你说不允许,那我们就忽略这个方法。
  • 读取FlashVars。如果你将其发布在HTML页面中,实际上可以通过FlashVars提供一些数据。不仅是一个变量,而是尽可能多的变量。对于小字符串来说没问题,但如果你打算传递超过一句话的文本…不要这样做。
  • 作为一个有趣的hack,你可以尝试用你想要的文本命名你的文件,并读取SWF的URL,从而显示它的名称并将其用作文本数据。但不要这样做 :)
    ^
    如果你想尝试,可以使用stage.loaderInfo.url访问URL,只需确保定义了一个stage - 在文档类中调用或在添加到stage的显示对象之后调用。
  • 使用ExternalInterface与JavaScript通信,并从JavaScript获取变量。实际上还不错,因为你的文本将整洁地存储在.js文件中,你可以在运行时修改它。当然,这是一个单独的文件,你需要在HTML中嵌入SWF,但这是你拥有的选项之一。
除此之外,您可以拥有一个外部文件来保存数据并将其嵌入SWF中。在这里查看更多关于嵌入的信息:http://flashgamedojo.com/wiki/index.php?title=Embedding_XML_in_AS3。这是关于嵌入XML数据的,但您可以使用该技术处理任何数据,甚至二进制数据。
嵌入数据是一件好事,但每次更改文件时都需要重新编译,因为它不是动态加载文件,而是在编译时将其嵌入到SWF本身中。
希望这有所帮助!

没问题!如果我回答了你的问题,请将帖子标记为“已解答”,这样其他人就可以找到类似问题的答案。 - Creative Magic
我在那个评论里添加了其他内容,但显然没有正确加载。 我正在与报纸网站的网络管理员交谈,他们告诉我他们使用Google DFP(DoubleClick for Publishers)。Google DFP是否不允许SWF连接到另一个服务器上的XML文件? - user2520528

0

JPEXS Decompiler 可以很容易地更改 SWF 中的文本。截至2021年,它仍在积极开发中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接