flash – AS3使用PrintJob打印MovieClip
发布时间:2020-12-15 19:48:31 所属栏目:百科 来源:网络整理
导读:我目前正在尝试创建一个允许我传入MovieClip并打印它的函数. 这是该函数的简化版本: function printMovieClip(clip:MovieClip) {var printJob:PrintJob = new PrintJob();var numPages:int = 0;var printY:int = 0;var printHeight:Number;if ( printJob.st
我目前正在尝试创建一个允许我传入MovieClip并打印它的函数.
这是该函数的简化版本: function printMovieClip(clip:MovieClip) { var printJob:PrintJob = new PrintJob(); var numPages:int = 0; var printY:int = 0; var printHeight:Number; if ( printJob.start() ) { /* Resize movie clip to fit within page width */ if (clip.width > printJob.pageWidth) { clip.width = printJob.pageWidth; clip.scaleY = clip.scaleX; } numPages = Math.ceil(clip.height / printJob.pageHeight); /* Add pages to print job */ for (var i:int = 0; i < numPages; i++) { printJob.addPage(clip,new Rectangle(0,printY,printJob.pageWidth,printJob.pageHeight)); printY += printJob.pageHeight; } /* Send print job to printer */ printJob.send(); /* Delete job from memory */ printJob = null; } } printMovieClip( testMC ); 不幸的是,这没有按预期工作,即打印MovieClip的整个宽度并在长度上进行分页. 解决方法
我忘了缩放打印区域以匹配正在调整大小的影片剪辑.请参阅下面的工作解决方案
function printMovieClip(clip:MovieClip) { var printJob:PrintJob = new PrintJob(); var numPages:int = 0; var printArea:Rectangle; var printHeight:Number; var printY:int = 0; if ( printJob.start() ) { /* Resize movie clip to fit within page width */ if (clip.width > printJob.pageWidth) { clip.width = printJob.pageWidth; clip.scaleY = clip.scaleX; } /* Store reference to print area in a new variable! Will save on scaling calculations later... */ printArea = new Rectangle(0,printJob.pageWidth/clip.scaleX,printJob.pageHeight/clip.scaleY); numPages = Math.ceil(clip.height / printJob.pageHeight); /* Add pages to print job */ for (var i:int = 0; i < numPages; i++) { printJob.addPage(clip,printArea); printArea.y += printArea.height; } /* Send print job to printer */ printJob.send(); /* Delete job from memory */ printJob = null; } } printMovieClip( testMC ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |