پرینت گرفتن از یک movieclip

yaa110

کاربر فعال
در این درس با نحوه پرینت گرفتن از یک MovieClip آشنا می شوید. برای این کار از کلاسه PrintJob استفاده می شود و مطابق با عرض صفحه کاغذ، اندازه MovieClip تغییر می کند.

۱- ابتدا باید کلاسه های مورد نیاز import شوند.
کد:
import flash.printing.PrintJob;
import flash.geom.Rectangle;
2- حالا تابع printMovieClip را به صورت زیر تعریف کنید:
کد:
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;
}
}
در این تابع:

ابتدا متغیرهای لازم برای صفحه بندی و چاپ MovieClip ایجاد شده است.
سپس با دستور printJob.start عملیات ارسال صفحات به متغیر printJob آغاز می شود.
درصورتی که عرض MovieClip از عرض صفحه کاغذ بزرگتر باشد، عرض MovieClip به اندازه عرض کاغذ در آمده و ارتفاع MovieClip به نسبت عرض کوچک می شود تا MovieClip کاملا در کاغذ قرار گیرد.
سپس ناحیه ای از MovieClip که باید چاپ شود، تعیین می شود. این ناحیه فضایی است که در یک صفحه کاغذ جا می شود.
در ادامه با توجه به ارتفاع تبدیل شده MovieClip تعداد صفحات مورد نیاز در متغیر numPages قرار می گیرد.
به کمک یک حلقه for و با دستور printJob.addPage صفحات برای چاپ شدن به متغیر printJob اضافه می شود و در هر بار ناحیه مورد نیاز برای چاپ با تغییر ارتفاع printArea، تغییر می کند.
در ادامه با دستور printJob.send اطلاعات به پرینتر ارسال می شود و در نهایت متغیر printJob از حافظه پاک می شود.
برای استفاده از این تابع فقط کافیست آن را فراخوانی کنید و نام MovieClip مورد نظر را به آن نسبت دهید.

کد:
printMovieClip(my_mc);

http://flashcenter.ir/?p=420
 

جدیدترین ارسال ها

بالا