使用 printJob 时 MouseEvent 出现问题

Posted

技术标签:

【中文标题】使用 printJob 时 MouseEvent 出现问题【英文标题】:Trouble with MouseEvent when using printJob 【发布时间】:2013-04-14 11:01:27 【问题描述】:

我正在使用 AS3 和 AIR 进行演示,需要能够打印单个幻灯片(可能最终打印多张幻灯片)。我根本不是程序员。过去我在 AS2 上做了一些工作,现在我从 AS3 重新开始。

我从这段代码开始:

print_btn.addEventListener(MouseEvent.CLICK,printContent);

function printContent(evt:MouseEvent) 
   var printJob:PrintJob = new PrintJob();

   if (printJob.start()) 

      if (content_mc.width>printJob.pageWidth) 
         content_mc.width=printJob.pageWidth;
         content_mc.scaleY=content_mc.scaleX;
      

      printJob.addPage(content_mc);
      printJob.send();
   

这可行,但有点功能失调,不会重置剪辑等。

然后我尝试了此处发布的最终代码:AS3 using PrintJob to print a MovieClip

只需将其放入时间线并更改一些内容会效果更好。至少就启动打印对话框、调整大小、打印、“重置剪辑”等而言。唯一缺少的是在打印页面上的位置更好……而且我在让鼠标事件正常工作时遇到了问题。我尝试将其设置为尽可能接近本文中的代码,如下所示:

printSlide12_btn.addEventListener(MouseEvent.CLICK, printMovieClip);


function printMovieClip(clip:MovieClip):void 

但无法让这个或其他任何东西工作。我知道我可能只是在这里做了一些完全错误的事情,但似乎找不到有帮助的例子。

【问题讨论】:

【参考方案1】:

你并没有确切地提到出了什么问题,但我可以看到你的处理程序不正确试试这个:

function printMovieClip(e:MouseEvent):void

   // put your print code here

您的事件处理程序应该接受 MouseEvent,因为这就是侦听器正在侦听的内容。

“我在让鼠标事件正常工作时遇到问题”相当含糊,因此包含错误很有帮助,并且导致错误的行至少。

【讨论】:

以上是关于使用 printJob 时 MouseEvent 出现问题的主要内容,如果未能解决你的问题,请参考以下文章

Swiffy 不支持 PrintJob

将 HTML 加载到 Flash 中并在 ActionScript 3 中使用 PrintJob() 进行打印?

ActionScript 3 PrintJob基础知识

如何在没有 MouseEvent 的情况下检测 Qt 中的鼠标状态

防止robot.mouseMove 生成​​MouseEvent?

覆盖 Qt MouseEvent 但仅当类变量为 True 时