0
与使用的BitmapData我有一个ActionScript 2的SWF,我想导出到PNG,然而,它加载为的AVM1Movie在AS3中被证明是相当麻烦的事实。缩放的AVM1Movie在AS3
当你加载只是正常的独立Flash Player 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 Player中一样缩放它?
这似乎是它会工作(因为当你改变的scaleX或的scaleY,它会自动调整高度/宽度),但它确实在那里调整的背景,但我想调整实际的东西还是一样的东西相同的比例=/ – mgrandi 2013-04-10 18:14:33
是的,这就是答案。在与为BitmapData.draw()的文件,它指出,变换不使用的DisplayObject源的,因此通过设置宽度/高度为2倍,它被修改变换的矩阵具有SY和SX是“2” ,但它没有使用它。使用源显示对象的transform.matrix调用绘图,或者您可以创建一个像shaunhusain那样的新矩阵。 – mgrandi 2013-04-11 09:03:14