0

我有一个包含 3D 视图和一些 2D 视图的应用程序。当我尝试打印其中一个 2D 视图时会出现问题。打印完成后 3D 视图消失。

我已经用 Away3D 中的 Basic_Load3DS 示例复制了这个问题。我添加了一个红色按钮来启动打印作业。PrintJob 打印按钮,与 3D 视图无关,但打印完成后蚂蚁消失。

你可以在这里试试。单击红色按钮,然后在出现问题的打印对话框中单击确定。查看源代码可用。

这是我添加到 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 场景,则您尝试绘制存在于 GPU 上的东西,而不是 CPU。您必须将场景绘制成位图,然后打印出来。

flash.display.Context3D.drawToBitmapData;

其次,你只是在画一个按钮?尝试创建一个位图,然后使用 drawtobitmapdata,然后绘制舞台——这应该会给你想要的结果。

于 2012-06-21T18:46:26.827 回答