0

ちょっと私はフラッシュを使って時限クイズゲームをまとめていて、ユーザーが現在のフレームからコンテンツを印刷できるようにするコードを設定しようとしています. (つまり、5 分後または質問 20 で進行状況を印刷したい場合など)。印刷オプション ボックスを表示できましたが、[OK] をクリックして印刷するたびに空白になります。私が使用しているコードは次のとおりです。

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(event:Event):void{

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 に答える