无痕客

落花无情,流水无痕……

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以下内容是我对Chris Waugh的MovieClip的反馈内容,这是我第二次对外国网友的技术反馈。

Hi Chris,
Thank you for your Open-source spirit!Based on your great work,I implement it and make a little improvement to solve my practical MovieClip-printing problem. The major progress i have made is to work out a way of printing a MovieClip with Multi-frames only by one printjob sending.of course, i resolved the question of "printing the full width of the Movieclip ".Because swf stores content in the form of vectorgraph,what you need do is make sure "clip.height=printArea.height;clip.width=printArea.width;". It is a easy way.
========================================

     1//MC printing Function
     2private function printMovieClip(clip:MovieClip):void
     3{
     4    var printJob:PrintJob=new PrintJob();
     5    var printArea:Rectangle;
     6    if (!printJob.start())
     7      return;
     8    //The page you choose to print ,"selectPages" is a mx:combox object i used to support printing one frame of MC
     9    var printPage:int=selectPages.selectedItem.data;
    10    if (printPage == 0) //print all frames of the MovieClip
    11      {
    12        for (var i:int=1; i <= clip.totalFrames; i++)
    13        {
    14          clip.gotoAndStop(i);
    15          /* Resize movie clip to fit within page width */
    16          clip.width=printJob.pageWidth;
    17          clip.scaleY=clip.scaleX;
    18          /* Store reference to print area in a new variable! Will save on scaling */
    19          printArea=new Rectangle(0, 0, printJob.pageWidth, printJob.pageHeight);
    20          //numPages=Math.ceil(clip.height / printJob.pageHeight);
    21                  /* Add pages to print job */
    22          printJob.addPage(clip, printArea);
    23        }
    24      }
    25    else //print the selected frame
    26    {
             //goto the selected frame firstly
    27        clip.gotoAndStop(printPage);
    28        /* Resize movie clip to fit within page width */
    29        clip.width=printJob.pageWidth;
    30        clip.scaleY=clip.scaleX;
    31        printArea=new Rectangle(0, 0, printJob.pageWidth, printJob.pageHeight);
    32         /* Add pages to print job */
    33        printJob.addPage(clip, printArea);
    34        }
    35
    36        /* Send print job to printer */
    37        printJob.send();
    38         /* Delete job from memory */
    39        printJob=null;
    40
    41    }


   

If you want more information ,you want to look at my clip image and you understand a little chinese, welcome you visit my blog:http://www.cnblogs.com/wuhenke/archive/2009/11/17/1604923.html
----------------------------------------

  best wishes!

  wuhenke

 

http://stackoverflow.com/questions/1422259/as3-using-printjob-to-print-a-movieclip/1749529#1749529

posted on 2009-11-17 23:24  无痕客  阅读(273)  评论(0编辑  收藏  举报