使用 printjob (Flash AS) 打印透明 png 时出现问题

发布于 2024-10-05 15:10:16 字数 369 浏览 3 评论 0原文

我正在尝试在 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;

提前致谢。

I am trying to print a movieclip with printjob in flash.

This movieclip contains two layers: one with a PNG image with transparency and one below with a jpg image.

The problem is that the transparency of the png is not respected so the jpg image does not appear.

The code i'm using is real simple:

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;

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仙气飘飘 2024-10-12 15:10:26

截取影片剪辑的屏幕截图:

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

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

Take a screenshot of your movieclip:

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

This technique is recommended for every printjob, because you can apply all sorts of transformations to the bitmap (scale, rotate, smoothing etc.) before sending it to the printer.

待天淡蓝洁白时 2024-10-12 15:10:24

我遇到了同样的问题,需要在我的 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 第一个参数是一个 Sprite,所以我不知道如何使 corneliu 的解决方案起作用。

I'm having the same problem, need to have some transparent pngs and vectors in my PrintJob. Adobe says to use:

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

BUT on a Mac we get a blank page for the print UNLESS you have the Object on the Stage. Thanks goes to Craig Grummitt's Before I Forget Blog posting for the solution!!
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);

I'm just hiding the Object that I need to print, this solution works great for me. I've got a symbol in the Library that I'm exporting. I've got transparent PNGs with my vectors.

addPage first parameter is a Sprite, so I couldn't figure out how to make corneliu's solution work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文