Actionscript 3 如何使用as3打印大尺寸sprite
我有一个应用程序,用户首先插入一些数据,然后以对齐的表格形式打印数据。但是,当我使用自定义类FilePrinter打印最终文档时,我遇到了一个问题,该类FilePrinter只接受一个非可选参数“Sprite”。我清楚而正确地遵循代码,但当我打印时,打印的文档只不过是一个清晰的页面。我不明白为什么会这样? 但需要注意的是,sprite由图像组成(分辨率不正常),打印文档的大小在准备打印时会变大(大约12mb到15mb)。 如果有人知道这个问题,请帮助我。。。 谢谢Actionscript 3 如何使用as3打印大尺寸sprite,actionscript-3,printing,Actionscript 3,Printing,我有一个应用程序,用户首先插入一些数据,然后以对齐的表格形式打印数据。但是,当我使用自定义类FilePrinter打印最终文档时,我遇到了一个问题,该类FilePrinter只接受一个非可选参数“Sprite”。我清楚而正确地遵循代码,但当我打印时,打印的文档只不过是一个清晰的页面。我不明白为什么会这样? 但需要注意的是,sprite由图像组成(分辨率不正常),打印文档的大小在准备打印时会变大(大约12mb到15mb)。 如果有人知道这个问题,请帮助我。。。 谢谢 var rslt:MovieC
var rslt:MovieClip = new MAIN_DOC();
rslt.box1.text = arr[0].toString();
rslt.box2.text = arr[1].toString();
rslt.box3.text = arr[2].toString();
rslt.box4.text = arr[3].toString();
rslt.box5.text = arr[4].toString();
rslt.box6.text = arr[5].toString();
var BackM:MovieClip = new BackGround();
BackM.PIcont.addChild(picData);
var sprite:Sprite = new Sprite();
sprite.addChild(BackM);
sprite.addChild(rslt);
var print:FilePrinter = new FilePrinter(sprite);
function printBtnClick(e:MouseEvent):void
{
print.print();
}
文件打印机类
public class FilePrinter {
private var pJob:PrintJob;
private var opt:PrintJobOptions = new PrintJobOptions(true);
private var sp:Sprite;
public function FilePrinter(sprite:Sprite) {
sp = new Sprite();
sp = sprite;
pJob = new PrintJob();
if (pJob.start())
{
pJob.addPage(sp, null, opt);
}
}
public function startPrint():void {
pJob.send();
}
}
从:
此外,15秒脚本超时限制适用于以下时间间隔:
- PrintJob.start()和第一个PrintJob.addPage()
- PrintJob.addPage()和下一个PrintJob.addPage()
- 最后一个PrintJob.addPage()和PrintJob.send()
FilePrinter
类,而且您似乎正在button click listener中调用print()
,但是FilePrinter
类中没有此类函数,只有startPrint()
FilePrinter
来自哪里?我似乎在任何地方都找不到它的文档,包括这个类的代码,以及你从哪里获取的示例,这将帮助我们识别问题,我没有从任何地方获取“FilePrinter”。这不是什么,只是自制的定制类。当我不使用这个类,而是使用简单的AS3代码来打印时,这个问题仍然存在。我正在共享classFilePrinter
codepackage{导入flash.display.BitmapData;导入flash.printing.PrintJob;导入flash.display.Sprite;导入flash.printing.PrintJobOptions;导入flash.display.Bitmap;公共类文件打印机{私有变量pJob:PrintJob私有变量opt:PrintJobOptions=new PrintJobOptions(true);私有变量sp:Sprite;公共函数文件打印机(sprite:sprite){sp=new sprite();sp=sprite;pJob=new PrintJob();if(pJob.start()){pJob.addPage(sp,null,opt);}}}}公共函数startPrint():void{pJob.send();}}
FilePrinter
类什么都不是。你应该假设这个类从来没有被使用过,因为3个代码一直用于打印最终文档。这没关系。我错误地写下了print()
,在我的真实文档中,我调用了startPrint
函数。我看到,超过15秒的限制在这种情况下不需要应用。因为15秒的时间比flash播放器实际花费的时间越来越长。flash播放器在启动打印对话框时最多只需要3到5秒。如果FilePrinter
类在按钮按下事件触发后初始化。这实际上是我不理解的问题,为什么打印的页面只是一个清晰的页面。
var print:FilePrinter;
function printBtnClick(e:MouseEvent):void
{
print = new FilePrinter(sprite);
print.startPrint();
}