print از MovieCLip در اكشن 3

abolfazlm

New Member
سلام من ميخواستم بدنم چطوري ميشه در اكشن اسكريپت 3 از يه مويكليپ خاط پرينت گرفت؟
 

evt

Member
PHP:
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;

    }

}

printMovieClip( testMC );

به جای testMC کافی نام موی کلیپی که میخوای پرینت بگیری رو بزاری . کد هم واضح و روشن هست . اگه جایی توضیح خواستی بگو تا بذارم .
 

evt

Member
PHP:
   /* Resize movie clip to fit within page width */ 
            if (clip.width > printJob.pageWidth) { 
                    clip.width = printJob.pageWidth; 
                    clip.scaleY = clip.scaleX; 
            }
اندازه موی کلیپ هر چی که باشه این دستور می یاد اون رو متناسب با صفحه های که می خوای چاپ کنی و توی تنظیمات چاپگر انتخاب میکنی فیت میکنه .
 

abolfazlm

New Member
به جای testMC کافی نام موی کلیپی که میخوای پرینت بگیری رو بزاری . کد هم واضح و روشن هست . اگه جایی توضیح خواستی بگو تا بذارم .

evt جان ممنون ... من كدتون رو استفاده كردم اما كار نكرد براي دكمه اي كه براي اين كار ادر يك منو در نظر گرفته بودم :
مسير دكمه :
PHP:
MovieClip(root).menuclip.scrollmenu
از اينجا ميخواستم بگم كه از مسير
PHP:
MovieClip(root).PrintMC

پرينت بگيره
اسم دكمه Print_bt
كدتو نو كه يه خورده دستكاري كردم :
PHP:
print_bt.addEventListener(MouseEvent.CLICK, printMovieClip);
function printMovieClip(event:MouseEvent):void{
 
    var clip:MovieClip=new 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 */ 
            printMovieClip( MovieClip(root).PrintMC ); 
			printJob.send(); 

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

    }
	
}

صفحه پرينت مياد اما پرينتي در كار نيست:sad:
اين كد رو هم خودم آزمايشي برا دكمه نوشته بودم كه از صفحه سفيد پرينت ميگرفت :
PHP:
	import flash.printing.*;
	import flash.display.*;
	import flash.events.*;
	
print_bt.addEventListener(MouseEvent.CLICK, printJob);
		 var _content:Sprite = new Sprite();
          _content== MovieClip(root).PrintMC ;
function printJob(event:MouseEvent) {

			/////////////////////////
			var _print:PrintJob = new PrintJob();
			_print.start();
			_print.addPage(_content);
			_print.send();
}
 

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

بالا