[英]Loading external pngs into an AS2 swf that is loaded into an AS3 swf wrapper
[英]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.