2012-05-29 50 views
0

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

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

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

这里是我加入Basic_Load3DS例如,如果我注释掉线tPJ.addPage(_btn)

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(); 
 } 
}  

万无一失的代码;

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

回答

0

如果你想绘制整个3D场景,你试图画出GPU上存在的东西,而不是CPU。您必须将场景绘制成位图,然后将其打印出来。

flash.display.Context3D.drawToBitmapData;

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

+0

我不是想绘制整个3D场景,我只是在打印2D零件,而且打印效果也很好。问题在于打印完成后,3D场景在屏幕上的应用程序中消失。我只是在示例中打印一个按钮,因为它只是一个示例。真正的应用程序打印更多可用的东西,但以相同的方式。所以我没有创建打印的问题,打印完成后,屏幕上的3D消失问题。 – Andrium

+0

啊我明白了。这很可能是一个错误,应该报告。 – ansiart