我有一个actionscript 2 SWF,我想导出到PNG,但是事实证明它在as3 中作为AVM1Movie 加载是相当麻烦的。
当您仅在普通的独立 Flash 播放器中加载 as2 swf 时,您可以右键单击 -> 放大,它可以很好地缩放,因为它会以该大小重新绘制矢量数据。但是,当我试图使 Loader 对象(包含加载的 as2 swf)缩放时,每当我将它绘制到 BitmapData 对象时,我都会得到 swf 的原始大小,周围有空格,而不是 swf缩放到新的维度。
我的代码如下所示:
var theFile:File = File(event.target);
var dis:DisplayObject = this.mLoader.content;
dis.width *=2;
dis.height *=2;
var bd:BitmapData = new BitmapData(dis.width, dis.height, true, 0x00000000);
trace("display object height and width is " + dis.width + " " + dis.height);
bd.draw(dis);
var stream:FileStream = new FileStream();
stream.open(theFile, FileMode.WRITE);
stream.writeBytes(PNGEncoder.encode(bd)); // needs as3corelib
stream.close();
Alert.show("saved to " + theFile.nativePath );
但是当我打开生成的 PNG 文件时,我得到了这个(红色显示透明背景):
有什么办法可以让我将 as2 swf 绘制到 BitmapData 时,它会像在 Flash 播放器中一样缩放它?