2

ボタンがあります。このボタンに関連する機能には、ステージの一部を印刷する仕事があります。問題は、印刷後、その特定の部分がステージの上に画像として表示されることです。すでに removechild を使用してステージからスプライトを削除しましたが、問題は別の場所にあると思います。誰かが私を助けることができれば、本当に感謝しています。

var printJob:PrintJob = new PrintJob();
var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = false;

printJob.start();
var bitmapData:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight);
bitmapData.draw(stage);
var bitmapDataA:BitmapData = new BitmapData(700,460);
bitmapDataA.copyPixels(bitmapData, new Rectangle(0, 270, 700, 800), new Point(0, 0));

//convert bitmapdata to bitmap to sprite
var screenShot:Bitmap = new Bitmap(bitmapDataA);
addChild(screenShot);
var axSprite:Sprite = new Sprite();
axSprite = (bitmapToSprite(screenShot));

//========== printjob bug fix - prevent blank pages: ==========
axSprite.x = 2000;//keep it hidden to the side of the stage
//axSprite.y = 2000;
stage.addChild(axSprite);
//add to stage - prevents blank pages;
//=============================================================

var myScale:Number;
myScale = Math.min(printJob.pageWidth/axSprite.width, printJob.pageHeight/axSprite.height);
axSprite.scaleX = axSprite.scaleY = myScale;
var printArea:Rectangle = new Rectangle(0,0, printJob.pageWidth/myScale, printJob.pageHeight/myScale);

printJob.addPage(axSprite, printArea, options);
printJob.send();


stage.removeChild(axSprite);
axSprite = null;
printJob = null;
4

1 に答える 1

0

screenShotここにインスタンスを追加していdisplayListます:

//convert bitmapdata to bitmap to sprite
var screenShot:Bitmap = new Bitmap(bitmapDataA);
addChild(screenShot);
var axSprite:Sprite = new Sprite();
axSprite = (bitmapToSprite(screenShot));

なぜこれを行う必要があるのか​​ わかりませんが、そうする場合は、後でもう一度削除してください:

stage.removeChild(axSprite);
removeChild(screenShot);
axSprite = null;
printJob = null;
于 2012-11-11T21:18:07.840 に答える