Статьи

Возиться с классом PrintJob

То же самое с чем угодно, пока вам не понадобится использовать функциональность данного класса или объекта в проекте, вы никогда не будете вникать в это, если вы не страстный исследователь типа человек !. Я обнаружил необходимость быстро изучить возможности печати Flash MX 2004 и был приятно удивлен.

Во Flash MX 2004 новый класс PrintJob намного более мощный, чем функции print () и printAsBitmap () в предыдущих версиях, позволяя вам печатать отдельные фрагменты MovieClips, фрагменты MovieClips (используя параметры области печати) или целые уровни с упрощенной простотой.

В приведенном здесь примере ( исходный код найден здесь ) мне нужно было быстро распечатать указанное количество мувиклипов со сцены (пример показан ниже).

Снимок экрана сцены

Я создал следующую функцию для передачи простого массива MovieClips, позволяющего добавить несколько страниц в очередь печати.

function PrintWhat(WhatToPrint:Array) { var PrintQueue = new PrintJob(); var PrintStart:Boolean = PrintQueue.start(); if (PrintStart) { for (i=0; i<=WhatToPrint.length; i++) { PrintQueue.addPage(WhatToPrint ); } PrintQueue.send(); } } //Prints Specific MovieClips PrintWhat([MCPrint, MCPrint002,MCPrint003]); //Prints a Level //PrintWhat([0]);

Функция PrintWhat () принимает массив MovieClips или уровней в качестве параметра, запускает новое задание на печать с использованием объекта PrintJob, вызывает метод start (), который затем запускает диалоговое окно печати. Метод start () возвращает логическое значение «истина» или «ложь» в зависимости от того, нажимает ли пользователь «OK» или «Отмена» в диалоговом окне печати, а внутреннее условие, когда PrintStart имеет значение «истина», запускается или переходит.

Если пользователь выбрал печать и щелкнул «ОК», входящий массив WhatToPrint анализируется, и страницы добавляются в очередь печати с помощью метода addPage (), а задание отправляется на принтер с помощью метода send ().

Примечание. Вы можете передать дополнительные параметры для печати фрагментов MovieClips, но я