Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 将符号从AS2 SWF加载到AS3应用程序?_Flash_Actionscript 3_Actionscript_Actionscript 2 - Fatal编程技术网

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

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 =

我正在将一个大型应用程序从AS2转换为AS3。部分功能是加载嵌入主权财富基金的资产,这些资产都是旧东西。不可能将它们转换为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?我是否需要另一层通过本地连接进行通信的“包装器”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库中取出符号。