Actionscript 3 尝试使用BitmapData捕获舞台区域

Actionscript 3 尝试使用BitmapData捕获舞台区域,actionscript-3,bitmapdata,Actionscript 3,Bitmapdata,我正在尝试使用BitmapData和copyPixels方法获取舞台区域的部分: bmd = new BitmapData(stage.stageWidth, stage.stageHeight); bmdRect = new BitmapData(320, 240); rectangle = new Rectangle(360, 20, 320, 240); bmdRect.copyPixels(bmd, rectangle, new Point()); bmd.draw(bmp);

我正在尝试使用BitmapData和copyPixels方法获取舞台区域的部分:

bmd = new BitmapData(stage.stageWidth, stage.stageHeight);

bmdRect = new BitmapData(320, 240);

rectangle = new Rectangle(360, 20, 320, 240); 

bmdRect.copyPixels(bmd, rectangle, new Point());

bmd.draw(bmp);
bmp = new Bitmap(bmdRect);   

var myEncoder:JPGEncoder = new JPGEncoder(100);
var byteArray:ByteArray = myEncoder.encode(bmd);

我得到的结果是一个空的。jpg我很确定错误在位图过程中,而不是保存过程中…

你不能调用
bmd.draw(stage)

最终使用此解决方案复制了stage的部分

(我从(360、20)和之后复制了舞台上的所有内容)

我曾经使用过
bmd.draw(stage)
,但这占据了整个舞台。我只需要舞台的一部分。
var bitmapdata:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);

bitmapdata.draw(stage);

var bitmapDataA: BitmapData = new BitmapData(300, 250);

bitmapDataA.copyPixels(bitmapdata, new Rectangle(360, 20, 320, 240), new Point(0, 0));

var myEncoder:JPGEncoder = new JPGEncoder(90);

var byteArray:ByteArray = myEncoder.encode(bitmapDataA);
  var stage_snapshot:BitmapData = new BitmapData(600, 120);

  var myRectangle:Rectangle = new Rectangle(0, 0, 600, 120);


  var myMatrix:Matrix = new Matrix();

  var translateMatrix:Matrix = new Matrix();

  translateMatrix.translate(-100, -225);

  myMatrix.concat(translateMatrix);

  stage_snapshot.draw(stage,myMatrix,null,null,myRectangle);

  var encoded_jpg:JPGEncoder = new JPGEncoder(100);

  var jpg_binary:ByteArray = new ByteArray();

  jpg_binary = encoded_jpg.encode(stage_snapshot);