本文作者:egoldy
文章出处:http://www.actionscript.org
文章性质:翻译
阅读次数:614
发布时间:2005-06-21
郑重声明:本教程源自http://www.actionscript.org.如需转载,请联系本站。
FLASH MX 2004 打印
PrintJob 类的应用
掌握在FLASH中打印是比较容易的,并不象最初MX 2004介绍中的那样难,在早期使用帧标签和一些较笨的定义法已经一去不复返了,现在,你可以通过actionscript完全控制打印,PrintJob需要flashplayer 7或更高的版本支持。
无论什么时候你需打印你都可以使用printjob,例如,影片剪辑有透明的背景,通常情况下打印的效果是不会好的。但是你可以很容易的通过设置PrintJob来达到更理想的色彩效果.
它是如何工作的
PrintJob类是通过与多种影片剪辑内容对话来工作的,将他们发送给打印机卷筒,最后打印出这些内容,下面是你所要了解到的有代表性的一些PrintJob类的特性:
1. 创建PrintJob类的实例
2. 调用start方法用来显示打印对放窗口。
3. 使用addPage来增加打印页数给打印卷筒。
4. 清空打印卷筒并打印send送来的页面。
5. 删除printJob.
典型的脚本:
代码:
btn.onRelease = function()
{
var pj = new PrintJob();
var success = pj.start();
if(success)
{
pj.addPage (0, {xMin : 0, xMax: 400: yMin: 0, yMax: 400});
pj.addPage("mc", {xMin : -300, xMax: 300, yMin: 400, yMax: 800});
pj.send();
}
delete pj;
}
首先,创建一个PrintJob实例,然后,打印工作开始,打印窗口在此时弹出并且用户可以选择打印参数。在这期间,FLASH影片被冻结。一旦用户结束或是接受对话窗口,脚本将继续向下运行下一行。Start方法将返回true或是false,这取决于用户接受还是取消打印窗口。
这之后,addPage方法将重复调用向打印机卷筒增加新的页。然后Send方法将被调用来清空打印机卷筒并发送到打印机来打印。这之后,一项很重要的工作就是要删除PrintJob以释放打印内存使打印机复位。
Addpage方法
AddPage方法是printJob类的中心方法。它发送页数给打印机卷筒。这种方法的用法如下:
代码:
pj.addPage(target[,printArea:Object, options:Object, frameNum:Number]):boolean;
PrintArea对象有下列的属性
代码:
{xMin: Number, xMax: Number, yMin: Number, yMax: Number}
选项的AS代码:
代码:
{printAsBitmap: Boolean}
对于单个方法有许多选项,因些让我们一个一个来学习这些参数。Target是指要打印的影片剪辑。影片剪辑的名字需要用引号引起来。如果你想打印舞台stage(_root),你需要设置它为0(相当于_level0);打印其它的层级可以输入其的层级数字。
下一个,你需要指定你想要打印的影片剪辑的哪一部分,printArea 是一个拥有xMin,xMax,yMin,yMax属性的对象。它定义一个矩形区域用来打印。
选项对象只有一个参数,printAsBitmap,它可以是true也可以是false.默认状态下是false;通过设置为true,你可以使用alpha透明和色彩效果显示打印效果。
最后,在一个有多帧的影片剪辑中,你可以指定你想要打印的帧的内容。
打印区域
在FLASH帮助文档中对FLASHAREA的讲述有些模糊,如下文为帮助文档中的内容:
“如果你想要在打印之前想要缩放影片剪辑,可以调用方法之前设置MovieClip._xscale和MovieClip._yscale属性,然后设置他们为原来的值。缩放影片剪辑与printArea无关,也就是说如果你指定的打印的区域为50*50像素,2500像素将被打印,如果你缩放了影片剪辑,2500像素同样会被打印,并且是在你的剪辑缩放的情况下“
这里面没有提到的是为什么在打印前要对影片剪辑进缩放。一个像素在打印前总是要转换成一个单一个点。这并不是你所想要的,FLASH不能自动的缩放影片剪辑来适应纸张的大小,因此如果你需要缩放,你不得不自已动手去缩放它。
FLASH文档使用的打印区域是600*800,那么这个大小是哪儿来的呢,这个是非常简单的:标准纸的大小是8.5*11英寸。对于windows来说屏幕的分辩率是72dpi乘以612*792,大致相当于600*800.现在也许对你来说是很重要的,结合上面,你可以选用a4纸张。因为许多纸是有内部边框的。
当printjob中调用完start后并从打印对话框返回后,你将继续下面的属性:
代码:
PrintJob.paperHeight
PrintJob.paperWidth
PrintJob.pageHeight
PrintJob.pageWidth
PrintJob.orientation
前面的两行是纸张的外围大小,下面两行是纸张的内部大小(内部边框).最后一个参数是纸张的打印方向。可以是portrait(竖向)或landscaple(横向).
如果你想让一个影片剪辑适应纸张的打印尺寸,你将不得不在加在卷筒之前缩放它。另一个解决方法就是你需要使用drawing api构建浮动的影片剪辑,并且可以移动它当接受到纸张大小信息时。
如果你不想把它弄的那么复杂。你的最好的办法就是保持你的影片剪辑的大小在612*792的范围之内,前有较大的边界。尽管你用的是A4纸张。
文章出处:http://www.actionscript.org
文章性质:翻译
阅读次数:614
发布时间:2005-06-21
郑重声明:本教程源自http://www.actionscript.org.如需转载,请联系本站。
FLASH MX 2004 打印
PrintJob 类的应用
掌握在FLASH中打印是比较容易的,并不象最初MX 2004介绍中的那样难,在早期使用帧标签和一些较笨的定义法已经一去不复返了,现在,你可以通过actionscript完全控制打印,PrintJob需要flashplayer 7或更高的版本支持。
无论什么时候你需打印你都可以使用printjob,例如,影片剪辑有透明的背景,通常情况下打印的效果是不会好的。但是你可以很容易的通过设置PrintJob来达到更理想的色彩效果.
它是如何工作的
PrintJob类是通过与多种影片剪辑内容对话来工作的,将他们发送给打印机卷筒,最后打印出这些内容,下面是你所要了解到的有代表性的一些PrintJob类的特性:
1. 创建PrintJob类的实例
2. 调用start方法用来显示打印对放窗口。
3. 使用addPage来增加打印页数给打印卷筒。
4. 清空打印卷筒并打印send送来的页面。
5. 删除printJob.
典型的脚本:
代码:
btn.onRelease = function()
{
var pj = new PrintJob();
var success = pj.start();
if(success)
{
pj.addPage (0, {xMin : 0, xMax: 400: yMin: 0, yMax: 400});
pj.addPage("mc", {xMin : -300, xMax: 300, yMin: 400, yMax: 800});
pj.send();
}
delete pj;
}
首先,创建一个PrintJob实例,然后,打印工作开始,打印窗口在此时弹出并且用户可以选择打印参数。在这期间,FLASH影片被冻结。一旦用户结束或是接受对话窗口,脚本将继续向下运行下一行。Start方法将返回true或是false,这取决于用户接受还是取消打印窗口。
这之后,addPage方法将重复调用向打印机卷筒增加新的页。然后Send方法将被调用来清空打印机卷筒并发送到打印机来打印。这之后,一项很重要的工作就是要删除PrintJob以释放打印内存使打印机复位。
Addpage方法
AddPage方法是printJob类的中心方法。它发送页数给打印机卷筒。这种方法的用法如下:
代码:
pj.addPage(target[,printArea:Object, options:Object, frameNum:Number]):boolean;
PrintArea对象有下列的属性
代码:
{xMin: Number, xMax: Number, yMin: Number, yMax: Number}
选项的AS代码:
代码:
{printAsBitmap: Boolean}
对于单个方法有许多选项,因些让我们一个一个来学习这些参数。Target是指要打印的影片剪辑。影片剪辑的名字需要用引号引起来。如果你想打印舞台stage(_root),你需要设置它为0(相当于_level0);打印其它的层级可以输入其的层级数字。
下一个,你需要指定你想要打印的影片剪辑的哪一部分,printArea 是一个拥有xMin,xMax,yMin,yMax属性的对象。它定义一个矩形区域用来打印。
选项对象只有一个参数,printAsBitmap,它可以是true也可以是false.默认状态下是false;通过设置为true,你可以使用alpha透明和色彩效果显示打印效果。
最后,在一个有多帧的影片剪辑中,你可以指定你想要打印的帧的内容。
打印区域
在FLASH帮助文档中对FLASHAREA的讲述有些模糊,如下文为帮助文档中的内容:
“如果你想要在打印之前想要缩放影片剪辑,可以调用方法之前设置MovieClip._xscale和MovieClip._yscale属性,然后设置他们为原来的值。缩放影片剪辑与printArea无关,也就是说如果你指定的打印的区域为50*50像素,2500像素将被打印,如果你缩放了影片剪辑,2500像素同样会被打印,并且是在你的剪辑缩放的情况下“
这里面没有提到的是为什么在打印前要对影片剪辑进缩放。一个像素在打印前总是要转换成一个单一个点。这并不是你所想要的,FLASH不能自动的缩放影片剪辑来适应纸张的大小,因此如果你需要缩放,你不得不自已动手去缩放它。
FLASH文档使用的打印区域是600*800,那么这个大小是哪儿来的呢,这个是非常简单的:标准纸的大小是8.5*11英寸。对于windows来说屏幕的分辩率是72dpi乘以612*792,大致相当于600*800.现在也许对你来说是很重要的,结合上面,你可以选用a4纸张。因为许多纸是有内部边框的。
当printjob中调用完start后并从打印对话框返回后,你将继续下面的属性:
代码:
PrintJob.paperHeight
PrintJob.paperWidth
PrintJob.pageHeight
PrintJob.pageWidth
PrintJob.orientation
前面的两行是纸张的外围大小,下面两行是纸张的内部大小(内部边框).最后一个参数是纸张的打印方向。可以是portrait(竖向)或landscaple(横向).
如果你想让一个影片剪辑适应纸张的打印尺寸,你将不得不在加在卷筒之前缩放它。另一个解决方法就是你需要使用drawing api构建浮动的影片剪辑,并且可以移动它当接受到纸张大小信息时。
如果你不想把它弄的那么复杂。你的最好的办法就是保持你的影片剪辑的大小在612*792的范围之内,前有较大的边界。尽管你用的是A4纸张。
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}