0

3D ビューといくつかの 2D ビューで構成されるアプリケーションがあります。2D ビューの 1 つを印刷しようとすると、問題が発生します。印刷が実行されると、3D ビューは消えます。

Away3D の Basic_Load3DS の例で問題を再現しました。印刷ジョブを開始するための赤いボタンを追加しました。PrintJob はボタンを印刷し、3D ビューとは関係ありませんが、印刷が完了するとアリは消えます。

ここで試すことができます。赤いボタンをクリックし、問題が発生した場合に表示される印刷ダイアログで [OK] をクリックします。ソースを表示できます。

Basic_Load3DS の例に追加したコードを次に示します。

private var _btn:Sprite;
protected function initExtra():void
{
 _btn = new Sprite();
 addChild(_btn);
 _btn.graphics.beginFill(0xff0000);
 _btn.graphics.drawRect(0, 0, 100, 100);
 _btn.y = 100;
 _btn.addEventListener(MouseEvent.CLICK, print);
}
protected function print(e:Event):void
{
 var tPJ:PrintJob = new PrintJob();
 if (tPJ.start())
 {
  tPJ.addPage(_btn); //This line cause the problem
  tPJ.send();
 }
} 

行 tPJ.addPage(_btn); をコメントアウトしても問題はありません。 

この問題を解決する方法についてのアイデアはありますか? 緊急に解決策が必要です!

4

1 に答える 1

0

3D シーン全体を描画しようとしている場合は、CPU ではなく GPU に存在するものを描画しようとしています。シーンをビットマップに描画してから、印刷する必要があります。

flash.display.Context3D.drawToBitmapData;

第二に、ボタンを描いているだけですか?ビットマップを作成してから、drawtobitmapdata を使用してステージを描画してみてください。これにより、目的の結果が得られるはずです。

于 2012-06-21T18:46:26.827 に答える