0

嘿,我正在通过 Flash 制作一个定时问答游戏,我正在尝试设置一个代码,允许用户从他们当前所在的框架中打印内容。(即 - 如果他们想在 5 分钟或问题 20 上打印他们的进度,等等。)。我已经能够调出打印选项框,但是每次单击“确定”打印时它都是空白的。这是我正在使用的代码:

print_btn.addEventListener(MouseEvent.CLICK, onPrintClick);

function onPrintClick(event:Event):void{

    import flash.display.Sprite;
    import flash.printing.PrintJob;

    var printJob:PrintJob = new PrintJob();
    var mySprite:Sprite = new Sprite();

    if (!printJob.start()) {
        return;
        printJob.addPage(mySprite); 
        printJob.send();
    }
}

有什么建议么?

4

2 回答 2

0

感谢您的答复!

好的,所以我对您建议的代码进行了调整.. 绝对解决了它打印空白的问题(现在左上角有一个红色框),但我仍在试图弄清楚如何转动打印时将当前帧转换为精灵,以便打印该帧的所有文本和图像而不是红色框..

这是我更新的代码:

导入 flash.display.Sprite;
导入 flash.printing.PrintJob;

print_btn.addEventListener(MouseEvent.CLICK, onPrintClick);
函数onPrintClick(事件:事件):无效{

var printJob:PrintJob = new PrintJob();
var mySprite:Sprite = new Sprite();
    mySprite.graphics.beginFill(0xFF0000);
    mySprite.graphics.drawRect(0,0,100,100);
    mySprite.graphics.endFill();

    printJob.start(); 
    printJob.addPage(mySprite); 
    printJob.send();

}

这让我疯了!哈哈..任何进一步的建议将不胜感激!..

谢谢!

于 2013-10-03T11:21:07.293 回答
0

我认为您的代码存在一些直接问题。希望将它们整理出来可以解决您的问题。

首先,您应该将import语句放在代码的最顶部。

其次,因为if(!printJob.start())您是说如果打印作业尚未开始,请执行此操作

return;
printJob.addPage(mySprite);
printJob.send();

这将意味着printJob.addPage(mySprite)&printJob.send()永远不会被调用。

第三,如果您直接使用该Sprite对象,new Sprite()那么它无论如何都是空白的。尝试绘制一个红色正方形,然后打印。

var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0xFF0000);
mySprite.graphics.drawRect(0,0,100,100);
mySprite.graphics.endFill();
// now print

这有什么帮助吗?

于 2013-10-02T20:34:36.667 回答