2012-05-29 49 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