Actionscript 3 打印movieclip as3的多份副本

Actionscript 3 打印movieclip as3的多份副本,actionscript-3,printing,Actionscript 3,Printing,我有一个打印贴纸的应用程序。使用数字步进,我可以选择多少贴纸必须打印。每页最多可以有3张。我怎样才能复制带有贴纸的movieclip?如何使它们具有序列号(例如5中的1、5中的2、5中的3、5中的4、5中的5)?我现在有一个带有3个贴纸的预先制作的movieclip,当我选择5个贴纸时,它会打印2页(6个贴纸,如果我打印8个,它会打印3页等) 我对你应该怎么做做做了一个小小的解释 function STRPRNButtonStatus( event:MouseEvent ) { /*c

我有一个打印贴纸的应用程序。使用数字步进,我可以选择多少贴纸必须打印。每页最多可以有3张。我怎样才能复制带有贴纸的movieclip?如何使它们具有序列号(例如5中的1、5中的2、5中的3、5中的4、5中的5)?我现在有一个带有3个贴纸的预先制作的movieclip,当我选择5个贴纸时,它会打印2页(6个贴纸,如果我打印8个,它会打印3页等)


我对你应该怎么做做做了一个小小的解释

function STRPRNButtonStatus( event:MouseEvent ) 
{
    /*change it as per your requirements*/
    var stickerToPrint:uint = 8;
    var stickerPerPage:uint = 3;
    var stickerOnPage:uint = 3;
    var pageNum:uint = 0;
    /*begin a print job*/
    var printJob:PrintJob = new PrintJob();
    /*test if start*/
    if ( printJob.start() ) 
    {
        /*get how many page required*/
        var totalPageRequired:uint = Math.ceil( stickerToPrint/stickerPerPage);
        for( var i:uint =0; i<totalPageRequired;i++)
        {
            /*calculate how many sticker already printed*/
            stickerOnPage = stickerToPrint - (pageNum*3);
            /*now check how many need on this page*/
            if( stickerOnPage>3)stickerOnPage = 3;

            for( var j:uint =stickerOnPage+1; j<=3;j++)
            {
                //here you hide the sticker, I simply assume that yourmain sticker contain sticker_1, sticker_2 and sticker_3 movieclips
                sticker["sticker_"+j].visible = false;
            }   
            printJob.addPage(sticker);
            ++pageNum;
        }

        /* Send print job to printer */
        if( totalPageRequired > 0 )printJob.send();

        /* Delete job from memory */
        printJob = null;

    } 
}
函数strpnbuttonstatus(事件:MouseEvent)
{
/*根据您的要求进行更改*/
var贴纸打印:uint=8;
每页var:uint=3;
变量标签第页:uint=3;
变量pageNum:uint=0;
/*开始打印作业*/
var printJob:printJob=new printJob();
/*测试是否启动*/
if(printJob.start())
{
/*获取所需的页面数*/
var totalPageRequired:uint=Math.ceil(贴纸打印/贴纸每页);
对于(var i:uint=0;i3)第3页的标签;
对于(var j:uint=stickerOnPage+1;j 0)printJob.send();
/*从内存中删除作业*/
printJob=null;
} 
}

您可以从页面中更改非必需标签的可见性,然后在标签中添加一些动态资源,并根据您的要求进行更改。我有一个movieclip标签1,其中包含3个标签。当我需要5张时,我会打印2张贴纸1。我怎样才能使第二份中的1张标签隐形?谢谢。但有一个问题。如果我只选择一个标签,它根本不会打印;如果我选择4,7,10,13等,它会少打印一个标签。更改var totalPageRequired:uint=Math.round(贴纸打印/贴纸每页);至var totalPageRequired:uint=Math.ceil(贴纸打印/贴纸每页);现在没问题了。你知道如何让它们有序列号吗(例如5中的1、5中的2、5中的3、5中的4、5中的5)?啊,你是对的,我用了round,这是错误的,ceil是正确的方法。在标签中有一个动态文本字段,并在循环中更新它。
function STRPRNButtonStatus( event:MouseEvent ) 
{
    /*change it as per your requirements*/
    var stickerToPrint:uint = 8;
    var stickerPerPage:uint = 3;
    var stickerOnPage:uint = 3;
    var pageNum:uint = 0;
    /*begin a print job*/
    var printJob:PrintJob = new PrintJob();
    /*test if start*/
    if ( printJob.start() ) 
    {
        /*get how many page required*/
        var totalPageRequired:uint = Math.ceil( stickerToPrint/stickerPerPage);
        for( var i:uint =0; i<totalPageRequired;i++)
        {
            /*calculate how many sticker already printed*/
            stickerOnPage = stickerToPrint - (pageNum*3);
            /*now check how many need on this page*/
            if( stickerOnPage>3)stickerOnPage = 3;

            for( var j:uint =stickerOnPage+1; j<=3;j++)
            {
                //here you hide the sticker, I simply assume that yourmain sticker contain sticker_1, sticker_2 and sticker_3 movieclips
                sticker["sticker_"+j].visible = false;
            }   
            printJob.addPage(sticker);
            ++pageNum;
        }

        /* Send print job to printer */
        if( totalPageRequired > 0 )printJob.send();

        /* Delete job from memory */
        printJob = null;

    } 
}