2016-12-04 3 views
-1

Когда я пытаюсь напечатать свою сцену, результаты будут ошибочно повернуты. Я попытался это исправить, по крайней мере, я искал по меньшей мере 150 различных страниц решений, без везения. Я не программист, которым я стараюсь быть. В любом случае, он должен работать, но это не так. Не могли бы вы мне помочь?AS3 print with button

Я попытался сделать это: когда я нажимаю кнопку «Печать», я хотел бы сохранить мою страницу (sprit) как файл pdf, но по умолчанию настройки должны быть ориентированы на ландшафт. Кроме того, есть рисунок (я использую чей-то код, который используется в Интернете), но я не хочу сохранять всю сцену (например, кнопки). Я хочу сохранить только рисунок. Спасибо за вашу помощь.

Я использовал это (не работает вообще даже рисунок не работает..)

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:MouseEvent):void{ 
    var bd :BitmapData = new BitmapData(stage.width, stage.height, false); 
    bd.draw(stage); 
    var b:Bitmap = new Bitmap (bd); 
    var s:Sprite = new Sprite(); 
    s.addChild(b); 
    var myPrintjob:PrintJob = new PrintJob(); 
    myPrintjob.start(); 
    var printArea = new Rectangle(23, 65, 650, 500); 
    myPrintJob.addPage(s, printArea); 
    myPrintJob.send(); 
} 

Я попытался также этот подход (рисовать и печать работал, но ориентация была неправильно):

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:Event)void{ 
    var myPrintjob:PrintJob = newPrintJob; 
    myPrintjob.start(); 
    myPrintjob.addPage(this) 
    myPrintjob.send; 
} 

Я также пробовал код, который я не помню. Это было похоже на ориентированный пейзаж и вращение 90, или что-то в этом роде. Это тоже не сработало. Наверное, я этого не делал.

ответ

0

Если вы публикуете для AIR, вы можете изменить ориентацию страницы, используя PrintJob.orientation.
Вам необходимо установить это перед вызовом start(). В вашем примере кода это будет выглядеть примерно так:

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:Event)void{ 
    var myPrintjob:PrintJob = new PrintJob(); 
    myPrintJob.orientation = PrintJobOrientation.LANDSCAPE; 
    myPrintjob.start(); 
    myPrintjob.addPage(this) 
    myPrintjob.send(); 
} 

К сожалению, это свойство не устанавливаемое при строительстве для Flash Player.

+0

благодарим за ответ, но он не работает. Ошибка: «Свойство 1059 доступно только для чтения». Это не позволяет нам измениться. Можете ли вы помочь мне о том, что я могу сделать? –

+0

Ах, извините, похоже, вы можете установить это свойство только в том случае, если вы публикуете для AIR. Он доступен только для чтения для Flash Player. Я добавлю к сведению ответ. – Cadin

0

Я использовал эти коды, и они выполнили эту работу. Спасибо за ваши старания.

function onPrintClick(event:Event):void{ 
var bd :BitmapData = new BitmapData(stage.width, stage.height, false); 
bd.draw(stage); 
var b:Bitmap = new Bitmap (bd); 
var s:Sprite = new Sprite(); 
s.addChild(b); 
var pj:PrintJob = new PrintJob(); 
pj.start(); 
pj.orientation = PrintJobOrientation.LANDSCAPE; 
var printArea = new Rectangle(Cw, Ch, 650, 500); 
pj.addPage(this);  
pj.send(); 
}