2016-04-06 42 views
-1

Sadece flash web'deki action script 3 ile yazdırma sorununu bilmek istiyorum.AS3 Flash printJob print boş sayfa

İki film klibi var, bunlardan birinin bitmap görüntüsü var, diğeri ise kağıt boyutu için kullanılıyor.

Bu çalışmayı yazdırmaya çalışıyorum ama her zaman boş kağıt var. Kodumda neyin var?

var printJob:PrintJob = new PrintJob(); 

//stage.stageWidth = 2481; 
//stage.stageHeight = 3508; 

mc.width = 980; // mc is a paper 
mc.height = 700; 

mc.x = mc.y = 0; 

mc.addChild(content_mc); 
content_mc.x = 10; // content_mc is a movie clip has a bitmap 
content_mc.y = 10; 

addChild(content_mc); 

if (printJob.start()) { 

    if (mc.width>printJob.pageWidth) { 
     mc.width=printJob.pageWidth; 
     mc.scaleY=mc.scaleX; 
    } 

    var rect1:Rectangle = new Rectangle(0, 0, 980, 700); 

    printJob.addPage(mc,rect1); 
    printJob.send(); 
} 

cevap

2

Bu noktaya çok kolaydır:

mc.addChild(content_mc); 
addChild(content_mc); 

Belki aynı anda farklı yerlerde bir DisplayObject ekleyebilir amaçlı düşünme üzerine yapmış. Peki hayır yapamazsınız, bir DisplayObject herhangi bir noktada sadece bir görüntüleme listesine ait olabilir. Son addChild'in istediği kadar çok görüntü listesine ekleyebilirsiniz. Buradaki durumda, içeriği mc'ye eklersiniz, ancak siz onu başka bir görüntüleme listesine ekleyerek hemen kaldırırsınız.

İhtiyacınız olan şey onu mc'ye eklemek, sonra yazdırmak ve sonra da olması gereken yere geri eklemektir. Yaptığınız şey, mc'ye eklenmesi, nerede olması gerektiğine geri eklenmesi, sonra yazdırılmasının boş olması.

mc.addChild(content_mc); 
content_mc.x = 10; 
content_mc.y = 10; 
if (printJob.start()) 
{ 
    if (mc.width>printJob.pageWidth) 
    { 
     mc.width=printJob.pageWidth; 
     mc.scaleY=mc.scaleX; 
    } 
    var rect1:Rectangle = new Rectangle(0, 0, 980, 700); 
    printJob.addPage(mc,rect1); 
    printJob.send(); 
} 
addChild(content_mc); 
+0

Bu iş yaratıcısı :) Çok teşekkür ederim – Richard