繁体   English   中英

将符号从AS2 SWF加载到AS3应用程序中?

[英]Loading symbols from an AS2 SWF into an AS3 application?

我正在将一个大型应用程序从AS2转换为AS3。 该功能的一部分是它加载嵌入在SWF中的资产,这些资产已经过时了。 无法将它们转换为AS3(它们中实际上没有代码,只是它们是由输出Flash 6兼容SWF的工具产生的)。

问题是,如何在AVM2应用程序中使用此AVM1(ActionScript VirtalMachine 1)图形内容?

这是我在AS2中曾经做过的事情:

mcLoader = new MovieClipLoader();
mcLoader.addListener(this);
holder = createEmptyMovieClip('holder', 10);
mcLoader.loadClip("http://.../library.swf", holder);
function onLoadInit() {
  holder.attachMovie('GFXsymbolInsideLibraryswf', 'mysymbol', 123);
}

如何在AS3中做同样的事情,加载AS2库swf? 我是否需要通过LocalConnection进行通信的“包装” SWF的另一层? 请告诉我,有一种更简单的方法。 我可以翻转Library.swf上的位以强制将其作为AVM2 SWF加载吗? 既然里面没有代码,也许行得通吗?

通过将旧版swf加载到AS3中的AVM1Movie对象中,可能是最好的选择。

看起来它可以满足我的要求,如果我弄清楚了,没有其他人答复,我将在稍后更新此答案。

编辑:没关系。 这不适用于我想做的事。 我最终不得不使用中间包装SWF。 我现在要假设我想要做的事是不可能的。 如果其他人有任何建议,请留下答案,我会考虑的。

“翻转”叮咬非常容易。 我不知道它是否会起作用,但是您可以尝试一下。 由于您没有代码,因此实际上可能会有机会...

无论如何,请使用十六进制编辑器打开SWF文件。 版本号是第四个字节。 对于为FP 6导出的swf,您将看到以下内容:

43 57 53 06
这是签名加上版本号。 前3个字节是ascii字符串“ CWS”,表示swf已压缩。

46 57 53 06这是未压缩的swf“ FWS”的签名。

尝试将06更改为09,看看是否可行...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM