我有一个Flash组件,它只是一个带有一些公开的API调用的编译代码库。通常我们将其作为SWC或MXP分发,它工作得很好。最近,我有一个客户表示有兴趣使用我的组件,但他们只在MTASC中进行所有的开发。MTASC不支持SWC文件,所以有没有一个好的方法来发送可以在MTASC中工作的预编译代码呢?我无法向他们发送原始源代码,但如果有其他方法,我将不胜感激。我确实有权访问源代码,因此我可以根据需要重新编译它。谢谢!
发布于 2010-03-01 23:27:08
我确实找到了答案,但我不能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函数。)编译
我很确定这就是我们所做的,但我现在没有机会去尝试。
希望这对你有所帮助,如果你有任何其他问题,请让我知道,我会看看我是否可以帮助解决这个问题。
https://stackoverflow.com/questions/1066180
复制相似问题