flash - AS3使用“打印作业”来打印影片剪辑

标签 flash actionscript-3 printing flashdevelop

我目前正在尝试创建一个函数,该函数将允许我传递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, 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 - AS3使用“打印作业”来打印影片剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422259/

相关文章:

flash - flash 的 geturl(...) 可以被谷歌抓取吗?

iphone - 由 Adob​​e Flash Professional CS5(非 CS5.5)开发的应用程序在 iPhone 4 上的 App Store 中可见吗?

actionscript-3 - 我的内存游戏 AS3 出现错误 #2025

javascript - 哪些脚本语言与 ECMA 类似?

javascript - 如何使用 java 脚本中的 window.print 方法更改页眉和页脚样式?

从数据框中删除行名称的显示

c++ - 使用 C++ 玩 swf 游戏

actionscript-3 - 使用 as3crypto 多次登录 assiSTLy.com

string - Delphi:如何从字符串中获取*真实的* ASCII 代码

flash - 逐行读取文本文件并推送到AS3中的数组