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

时间:2015-07-07 12:18:12

标签: actionscript-3 flash-cs5

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



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);




3 个答案:

答案 0 :(得分:2)

试试这个:

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);

答案 1 :(得分:0)

您的电影已缩放,但您正在使用其缩放尺寸来创建您的位图数据,但绘图会忽略转换,因此它会将其缩放为未缩放。根据你的说法,你的电影可能会缩放到0.5。其他情况可能是可能的,但如果你的电影是缩放的,一个简单的修复可能是:

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

答案 2 :(得分:0)

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

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