将 ActionScript 2 SWF 转换为 ActionScript 3 SWF 文件(可以剥离代码)
Posted
技术标签:
【中文标题】将 ActionScript 2 SWF 转换为 ActionScript 3 SWF 文件(可以剥离代码)【英文标题】:Convert an ActionScript 2 SWF to an ActionScript 3 SWF file (CODE CAN BE STRIPPED) 【发布时间】:2011-10-22 18:57:03 【问题描述】:晚上,我有一个使用 ActionScript 2 代码的 SWF 文件(Flash 文件)。
我喜欢将其转换为使用 Actionscript 3 代码的 SWF 文件。
请注意,我说的是“使用”,而不是包含。 SWF 可能仍然包含 AS2 代码,即使从外部看起来它包含 AS3 代码。这是因为代码永远不会被处理,我只需要将 AS2 SWF 文件制作成 AS3 SWF 文件即可。
可以从生成的 SWF 文件中完全删除 ActionScript。没关系。
有办法做到这一点,只是如何做的问题。
怎么做?
如果有人知道我应该怎么做,请说。也许您知道现有的应用程序可以从 SWF 文件中删除所有 ActionScript 代码?
非常清楚:我确实不希望将 AS2 代码转换为 AS3 代码。虽然如果这以某种神奇的方式成为可能,我当然不会抱怨。
必须更改为定义为 AS3 SWF 而不是 AS2 SWF 文件的是 SWF。
【问题讨论】:
【参考方案1】:所以你没有源代码,是吗?我自己从未尝试过,但我猜代码可以用 Flasm 剥离,然后将 SWF 电影通过十六进制版本转换为定义 ActionScript 和 Flash Player 版本的标头值。
除了代码标签和大量代码字节码之外,我现在不知道任何与 AVM2 不兼容的 AS1 和 2 标签。可能是错的。
【讨论】:
我有我的源代码,但我遇到了同样的问题。我有成千上万的基于网络的辅导系统的面部动画,并且在将主系统升级到AS3后,它们将不再播放。打开每个 FLA 文件 > 发布设置 > 目标播放器版本 > ActionScript 版本 > 以新的 FLA 格式保存、再次导出电影等需要太长时间。只有最后一帧有调用“停止”的代码并在“_level0”中设置变量”。完美的解决方案是将 SWF 文件批量转换为 AS3 SWF 文件,去掉最后一帧中的过时代码。 我猜你可以制作一些 JSFL 来批量转换所有 FLA 文件。我不知道AS3中是否允许“_level0”。以上是关于将 ActionScript 2 SWF 转换为 ActionScript 3 SWF 文件(可以剥离代码)的主要内容,如果未能解决你的问题,请参考以下文章
将 SWF 加载到 ActionScript 3 项目中 (Flex Builder)
将带有 AS2 动作和 ActionScript 的 FLA 资源编译为 SWF
如何在 Actionscript 3 中播放与 SWF 不在同一目录中的声音?