flash – AS3使用PrintJob打印MovieClip

前端之家收集整理的这篇文章主要介绍了flash – AS3使用PrintJob打印MovieClip前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在尝试创建一个允许我传入MovieClip并打印它的函数. @H_404_7@

@H_404_7@这是该函数的简化版本:

@H_404_7@

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 );
@H_404_7@不幸的是,这没有按预期工作,即打印MovieClip的整个宽度并在长度上进行分页.

解决方法

我忘了缩放打印区域以匹配正在调整大小的影片剪辑.请参阅下面的工作解决方案 @H_404_7@

@H_404_7@

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 );

猜你在找的Flash相关文章