در این درس با نحوه پرینت گرفتن از یک MovieClip آشنا می شوید. برای این کار از کلاسه PrintJob استفاده می شود و مطابق با عرض صفحه کاغذ، اندازه MovieClip تغییر می کند.
۱- ابتدا باید کلاسه های مورد نیاز import شوند.
2- حالا تابع printMovieClip را به صورت زیر تعریف کنید:
در این تابع:
ابتدا متغیرهای لازم برای صفحه بندی و چاپ MovieClip ایجاد شده است.
سپس با دستور printJob.start عملیات ارسال صفحات به متغیر printJob آغاز می شود.
درصورتی که عرض MovieClip از عرض صفحه کاغذ بزرگتر باشد، عرض MovieClip به اندازه عرض کاغذ در آمده و ارتفاع MovieClip به نسبت عرض کوچک می شود تا MovieClip کاملا در کاغذ قرار گیرد.
سپس ناحیه ای از MovieClip که باید چاپ شود، تعیین می شود. این ناحیه فضایی است که در یک صفحه کاغذ جا می شود.
در ادامه با توجه به ارتفاع تبدیل شده MovieClip تعداد صفحات مورد نیاز در متغیر numPages قرار می گیرد.
به کمک یک حلقه for و با دستور printJob.addPage صفحات برای چاپ شدن به متغیر printJob اضافه می شود و در هر بار ناحیه مورد نیاز برای چاپ با تغییر ارتفاع printArea، تغییر می کند.
در ادامه با دستور printJob.send اطلاعات به پرینتر ارسال می شود و در نهایت متغیر printJob از حافظه پاک می شود.
برای استفاده از این تابع فقط کافیست آن را فراخوانی کنید و نام MovieClip مورد نظر را به آن نسبت دهید.
http://flashcenter.ir/?p=420
۱- ابتدا باید کلاسه های مورد نیاز import شوند.
کد:
import flash.printing.PrintJob;
import flash.geom.Rectangle;
کد:
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