Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Печать страницы (http://www.flasher.ru/forum/showthread.php?t=148615)

dimetradim 07.01.2011 02:19

Печать страницы
 
Помогите, пожалуйста. Я новичек и поэтому ответы типа почитай хелп и т.п. только зря потраченое время.

Вот то, что я нашел в хелпе. Мне нужно сделать кнопку "Распечатать" для странички презенташки. Как ниже слдующее прикрутить к кнопке и что еще туда надо дописать (если надо) чтобы всё работало.

Код AS3:

package 
{
    import flash.printing.PrintJob;
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.display.Stage;
    import flash.geom.Rectangle;
 
    public class PrintScaleExample extends Sprite
    {
        private var bg:Sprite;
        private var txt:TextField;
 
        public function PrintScaleExample():void
        {
            init();
            draw();
            printPage();
        }
 
        private function printPage():void
        {
            var pj:PrintJob = new PrintJob();
            txt.scaleX = 3;
            txt.scaleY = 2;
            if (pj.start())
            {
                trace(">> pj.orientation: " + pj.orientation);
                trace(">> pj.pageWidth: " + pj.pageWidth);
                trace(">> pj.pageHeight: " + pj.pageHeight);
                trace(">> pj.paperWidth: " + pj.paperWidth);
                trace(">> pj.paperHeight: " + pj.paperHeight);   
 
                try
                {
                    pj.addPage(this, new Rectangle(0, 0, 100, 100));
                }
                catch (error:Error)
                {
                    // Do nothing.
                }
                pj.send();
            }
            else
            {
                txt.text = "Print job canceled";
            }
            // Reset the txt scale properties.
            txt.scaleX = 1;
            txt.scaleY = 1;
        }
 
        private function init():void
        {
            bg = new Sprite();
            bg.graphics.beginFill(0x00FF00);
            bg.graphics.drawRect(0, 0, 100, 200);
            bg.graphics.endFill();
 
            txt = new TextField();
            txt.border = true;
            txt.text = "Hello World";
        }
 
        private function draw():void
        {
            addChild(bg);
            addChild(txt);
            txt.x = 50;
            txt.y = 50;
        }
    }
}


NikolyA 07.01.2011 02:52

Код AS3:

function printMe(event:MouseEvent):void
{
    var my_pj:PrintJob = new PrintJob();
    if (my_pj.start())
    {
        try
        {
            my_pj.addPage(clipPrint); // clipPrint - клип с твоей инфой
        }
        catch (e:Error)
        {
            print_mc.questionField_txt.text = “сообщение о статусе принтера;
        }
 
        my_pj.send();
    }
}

и вешай на свою кнопку:

Код AS3:

pritnBtn.addEventListener(MouseEvent.CLICK, printMe);

- если ничего не забыл, должно работать

dimetradim 07.01.2011 13:26

Спасибо! Заработало почти сразу

"сообщение о статусе принтера"; не хватало кавычки

и мне пришлось создать 2 мувика :
первый clipPrint - это понятно инфа которую надо напечатать
а вот второй print_mc - я так и не понял для чего он и что такое questionField_txt

Поясни если можно.
Если я удаляю со сцены мувик print_mc то выдает ошибку 1120: Обращение несуществующего свойства print_mc.

NikolyA 07.01.2011 17:30

ну у меня print_mc - это мувик, в котором есть динамическое текстовое поле с интсанс именем: questionField_txt - это планировалось сделать проверку на подключение принтера - но так и осталось не доделаным

ты если удаляешь мувик, то удали и в скрипте к нему обращение

dimetradim 08.01.2011 02:16

Спасибо тебе большое! Ты мне очень помог!


Часовой пояс GMT +4, время: 07:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.