我有一个由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),那么什么都不会出错;
有关如何解决此问题的任何想法?我迫切需要一个解决方案!
答案 0 :(得分:0)
如果您正在尝试绘制整个3D场景,那么您正在尝试绘制GPU上存在的内容,而不是CPU。你必须将场景绘制成位图,然后打印出来。
flash.display.Context3D.drawToBitmapData;
其次,你只是画一个按钮?尝试创建一个位图,然后使用drawtobitmapdata,然后绘制舞台 - 这应该会给你想要的结果。