打印2D元素会使stage3d视图消失

时间:2012-05-29 08:54:59

标签: actionscript-3 flash printing away3d stage3d

我有一个由3D视图和一些2D视图组成的应用程序。当我尝试打印其中一个2D视图时,会出现此问题。执行打印后,3D视图消失。

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

You can try it here。单击红色按钮,然后在出现问题的打印对话框中单击“确定”。查看源代码可用。

以下是我添加到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),那么什么都不会出错;

有关如何解决此问题的任何想法?我迫切需要一个解决方案!

1 个答案:

答案 0 :(得分:0)

如果您正在尝试绘制整个3D场景,那么您正在尝试绘制GPU上存在的内容,而不是CPU。你必须将场景绘制成位图,然后打印出来。

flash.display.Context3D.drawToBitmapData;

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