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