我有一个由3D视图和一些2D视图组成的应用程序。当我尝试打印其中一个2D视图时出现问题。执行打印后,三维视图将消失。
我已经用Away3D中的Basic_Load3DS示例复制了这个问题。我添加了一个红色按钮来启动打印作业。PrintJob打印按钮,与3D视图没有任何关系,但在打印完成后,ant消失。
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);就不会出错。
对如何解决这个问题有什么想法吗?我急需一个解决方案!
发布于 2012-06-22 02:46:27
如果你试图绘制整个3D场景,你试图绘制的东西存在于GPU上,而不是CPU上。你必须将场景绘制成位图,然后打印出来。
flash.display.Context3D.drawToBitmapData;
其次,你只是在画一个按钮?尝试创建一个位图,然后使用drawtobitmapdata,然后绘制舞台--这将为您提供所需的结果。
https://stackoverflow.com/questions/10795953
复制相似问题