Flash 将符号从AS2 SWF加载到AS3应用程序?
我正在将一个大型应用程序从AS2转换为AS3。部分功能是加载嵌入主权财富基金的资产,这些资产都是旧东西。不可能将它们转换为AS3,因为它们实际上没有代码,只是它们是由输出与flash 6兼容的SWF的工具生成的 问题是,如何在AVM2应用程序中使用此AVM1 ActionScript VirtalMachine 1图形内容 以下是我在AS2中经常做的事情:Flash 将符号从AS2 SWF加载到AS3应用程序?,flash,actionscript-3,actionscript,actionscript-2,Flash,Actionscript 3,Actionscript,Actionscript 2,我正在将一个大型应用程序从AS2转换为AS3。部分功能是加载嵌入主权财富基金的资产,这些资产都是旧东西。不可能将它们转换为AS3,因为它们实际上没有代码,只是它们是由输出与flash 6兼容的SWF的工具生成的 问题是,如何在AVM2应用程序中使用此AVM1 ActionScript VirtalMachine 1图形内容 以下是我在AS2中经常做的事情: mcLoader = new MovieClipLoader(); mcLoader.addListener(this); holder =
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?我是否需要另一层通过本地连接进行通信的“包装器”SWF?请告诉我有更简单的方法。我可以翻转Library.swf上的位以强制它作为AVM2 swf加载吗?因为它里面没有代码,也许可以工作?您最好将遗留swf加载到AS3中的一个对象中。这看起来像是它可以做我想做的事情,如果我弄明白了,没有其他人回复,我会稍后更新这个答案
编辑:无需担心。这对我想做的事不起作用。我最终不得不使用中间包装SWF。我现在要假设我想要的是不可能做到的。如果有人有任何建议,请留下答案,我会考虑的。我不知道它是否有效,但你可以试一试。因为你没有代码,你可能有机会 无论如何,用十六进制编辑器打开swf。版本号是第四个字节。对于为FP 6导出的swf,您将看到如下内容: 43575306 这是签名加上版本号。前3个字节是ascii字符串CWS,这意味着swf被压缩 46575306 这是未压缩swf、FWS的签名
尝试将06更改为09,看看是否有效…谢谢,关于如何在AVM1Movie对象中加载符号,有什么提示吗?下面提到的“强制加载器”基本上就是这样做的。然而,它并没有回避这样一个事实,即显然在AVM1 SWF中,movieclips被导出为“符号”,而在AVM2 SWF中,它们被导出为实际的“类”。因此,在AVM2 swf中,如果符号尚未连接到舞台上,就无法从AVM1 swf库中取出符号。