复制 moviClip 不起作用,它只显示四分之一的图像

Copy moviClip doesn't work, it only displays a quarter of image

我尝试复制一个 movicclip,但创建的位图只显示了我要复制的 movicClip 的四分之一

var insName:String="a1";
var myBitmapData:BitmapData = new BitmapData(m1.getChildByName(insName).width,m1.getChildByName(insName).height);
myBitmapData.draw(m1.getChildByName(insName) as MovieClip);
var bm:Bitmap = new Bitmap(myBitmapData);
bm.x = 1800;
bm.y = 100 ;
addChild(bm);

您的影片已缩放,但您正在使用其缩放后的大小来创建位图数据,但绘图会忽略变换,因此它会以未缩放的方式绘制。从您所说的看来,您的电影可能缩放为 0.5。其他情况也可能存在,但如果您的电影被缩放,一个简单的修复可能是:

var child:DisplayObject = m1.getChildByName(insName);
var myBitmapData:BitmapData = new BitmapData(child.width / child.scaleX, child.height / child.scaleY);

试试这个:

import flash.geom.Matrix;

然后改变这个:

var mcTemp:MovieClip=m1.getChildByName(insName);
myBitmapData.draw( mcTemp,new Matrix( 1, 0, 0, 1,  mcTemp.width/2, mcTemp.height/2);

根据@Vesper 的评论,我认为最好将其用于您的位图数据:

var myBitmapData:BitmapData=new BitmapData(child.getBounds().width,child.getBounds().height)