使用printjob打印透明度的问题(Flash AS)

时间:2010-12-02 15:57:20

标签: flash actionscript printing png transparency

我正在尝试使用flash中的printjob打印动画片段。

此动画片段包含两个图层:一个带有透明度的PNG图像,另一个带有jpg图像。

问题是不尊重png的透明度,因此不会出现jpg图像。

我正在使用的代码非常简单:

var my_pj:PrintJob = new PrintJob();

if (my_pj.start()) {
    my_pj.addPage("_parent.imprimir", {xMin:0, xMax:399, yMin:0, yMax:900}, false);
    my_pj.send();
}
delete my_pj;

提前致谢。

2 个答案:

答案 0 :(得分:3)

我遇到同样的问题,需要在我的PrintJob中有一些透明的png和向量。 Adobe说要使用:

var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = true;
myPrintJob.addPage(mySprite, null, options);

但是在Mac上我们会得到一个空白页面,除非你在舞台上有对象。感谢Craig Grummitt先生忘记博客发布解决方案!! http://craiggrummitt.wordpress.com/2007/12/21/printasbitmap-object-must-be-on-stage

this.addChild(page);
//for macs only – otherwise they display the page while the print dialogue is open.
page.visible = false; 
var myOption:PrintJobOptions = new PrintJobOptions(true);
my_pj.addPage(page, null, myOption);
my_pj.send();
this.removeChild(page);

我只是隐藏了我需要打印的对象,这个解决方案对我很有用。我在图书馆里有一个我要导出的符号。我的矢量我有透明的PNG。

addPage first参数是一个Sprite,所以我无法弄清楚如何使corneliu的解决方案有效。

答案 1 :(得分:1)

截取您的movieclip的截图:

var bmp:BitmapData = new BitmapData(_parent.imprimir.width, _parent.imprimir.height);
bmp.draw(_parent.imprimir);
var page:Bitmap = new Bitmap(bmp);

建议每种打印工作都使用此技术,因为在将位图发送到打印机之前,您可以将各种转换应用于位图(缩放,旋转,平滑等)。