我有一个 Flash 组件,它只是一个带有一些公开 API 调用的编译代码库。通常我们将它作为 SWC 或 MXP 分发,它工作得很好。最近我有一个客户表示有兴趣使用我的组件,但他们只在 MTASC 中进行所有开发。MTASC 不支持 SWC 文件,所以 ss 有一种发送可在 MTASC 中工作的预编译代码的好方法吗?我无法将原始源代码发送给他们,但如果有其他方法,我将不胜感激。我确实可以访问源代码,因此我可以根据需要重新编译它。谢谢!
1 回答
我确实找到了答案,但我不能 100% 确定这是否正是这个过程,因为我不再从事那份工作,并且我面前不再有计算机/过程。这有点骇人听闻。
它所涉及的基本上是解压缩 SWC 文件并得到一个 .swf 和一堆 .asi 文件。
.asi 文件实际上只是 ActionScript 文件,但它们包含内在定义,或者只是实际存在的原型或足迹。它的真正意义仍在 .swf 中。
因此,您将所有这些 .asi 文件重命名为 .as,然后将它们放入您的 MTASC 类路径中。由于它们包含定义,因此在编译时不应再出现“未定义变量”或“未定义函数”错误。现在您只需使用 loadMovie 拉入定义实际函数体的 SWF。loadMovie 完成后,您应该能够使用所有功能。
当然,唯一需要注意的是,在从 SWC 调用任何函数之前,您必须等待该 SWF 加载。
所以一步一步,它看起来像这样:
1.) 解压 SWC 文件。这可以使用 WinZip 或 OS X 终端解压缩命令来完成 2.) 将 .asi 文件重命名为 .as 3.) 将新的 .as 文件添加到 MTASC 类路径 4.) 添加 AS 代码以加载 .swf 并确保没有在加载 SWF 之前调用 SWC 函数 5.) 编译
我很确定这就是我们所做的,但我现在无法尝试。
希望这会有所帮助,如果您有任何其他问题,请告诉我,我会看看是否可以帮助您解决问题。