Flash BitmapData-在一个矩阵中缩放并选择区域?

Flash BitmapData-在一个矩阵中缩放并选择区域?,flash,actionscript-3,matrix,transformation,bitmapdata,Flash,Actionscript 3,Matrix,Transformation,Bitmapdata,我使用变换矩阵作为位图绘制的一部分来选择目标区域,而不是从0,0: var bmd:BitmapData = new BitmapData(target.width,target.height,true,0); var mat:Matrix = new Matrix(1,0,0,1,-target.x,-target.y); bmd.draw(this,mat); 这非常有效,使用target作为边界绘制This的内容。我也可以使用矩阵进行缩放,如下图所示: var scale:Number

我使用变换矩阵作为位图绘制的一部分来选择目标区域,而不是从0,0:

var bmd:BitmapData = new BitmapData(target.width,target.height,true,0);
var mat:Matrix = new Matrix(1,0,0,1,-target.x,-target.y);
bmd.draw(this,mat);
这非常有效,使用
target
作为边界绘制
This
的内容。我也可以使用矩阵进行缩放,如下图所示:

var scale:Number = .32;
var bmd:BitmapData = new BitmapData(target.width/scale,target.height/scale,true,0);
var mat:Matrix = new Matrix(scale,0,0,scale);
bmd.draw(this,mat);
当我尝试将这两种操作合并为一种操作时,问题就出现了:

var scale:Number = .32;
var bmd:BitmapData = new BitmapData(target.width/scale,target.height/scale,true,0);
var mat:Matrix = new Matrix(scale,0,0,scale,-target.x,-target.y);
bmd.draw(this,mat);

我不确定这里出了什么问题,但是当这个作为位图添加到stage中时,没有显示任何内容,但是如果我只执行一个或另一个操作,它们都会按预期工作。有什么想法吗?

Doh,今天我要回答自己的第二个问题。tx和ty特性需要乘以比例因子,以保持正确的偏移值。这大概与矩阵的转换顺序有关吧

解决方案:

var scale:Number = .32;
var bmd:BitmapData = new BitmapData(target.width/scale,target.height/scale,true,0);
var mat:Matrix = new Matrix(scale,0,0,scale,-(target.x*scale),-(target.y*scale));
bmd.draw(this,mat);