7.2 PrintJob-Klasse
In Flash 8 und Flash MX 2004 und damit in ActionScript 2 ist die PrintJob-Klasse eine machtvolle Alternative zu den vier Druckfunktionen.
Sie finden Sie im Aktionen-Bedienfeld unter ActionScript 2.0-Klassen • Film • PrintJob (bzw. in Flash MX 2004: Integrierte Klassen • Film • PrintJob).
Wenn Sie drucken möchten, benötigen Sie ein Objekt dieser Klasse. Die eigentliche Arbeit übernehmen dann Methoden. Das Vorgehen erfolgt immer in derselben Reihenfolge:
Abbildung 7.4 Die PrintJob-Klasse im Aktionen-Bedienfeld
1. | Sie instanziieren ein neues PrintJob-Objekt mit dem Konstruktor new. Dieses Objekt speichern Sie in einer Variablen, die den Datentyp des Objekts, also PrintJob, besitzt. |
var ausdruck_pj:PrintJob = new PrintJob();
2. | Anschließend beginnen Sie die Aufnahme von Seiten zum Druck. Hierfür dient die Methode start()start() (Methode). |
ausdruck_pj.start();
3. | Mit der Methode addPage(Ziel, Druckbereich, Bitmap, Bildnummer) fügen Sie eine neue Seite für den Druck hinzu: |
ausdruck_pj.addPage(_root, {xMin:0, xMax:220, yMin:0, yMax:200}, {printAsBitmap:false}, 1);
4. | Sie können mehrere addPage()addPage() (Methode)-Methoden hintereinander reihen, um mehrere Seiten auszudrucken. Die Reihenfolge richtet sich danach, wann eine Seite zum Druck hinzugefügt wurde. |
5. | Die Methode send()send() (Methode) schickt alle hinzugefügten Seiten zum Drucker und startet den DruckenDialogfeldDrucken-Dialog. |
ausdruck_pj.send()
6. | Mit delete (Anweisung)delete löschen Sie abschließend das PrintJob-Objekt, um den belegten Hauptspeicher wieder freizugeben. |
delete ausdruck_pj
Optionen für addPage()
Die Methode addPage() ist das Herzstück beim Ausdrucken mit dem PrintJob-Objekt. Hier legen Sie fest, welche und wie viele Seiten ausgedruckt werden. Insgesamt besitzt addPage(Ziel, Druckbereich, Bitmap, Bildnummer) vier Parameter, von denen Sie nur den ersten angeben müssen:
- Das Ziel kann ein MovieClip oder eine Dokumentebene sein. Das Ziel muss immer festgelegt werden:
ausdruck_pj.addPage(_root);
- Der Druckbereich ist durch eine eigene Syntax mit Koordinatenwerten definiert. Ausgangspunkt des Koordinatensystems ist der Registrierungspunkt des MovieClips oder Hauptfilms. xMin gibt an, wo der Druckbereich auf der x-Achse beginnt, und xMax, wo er endet. yMin und yMax legen den Druckbereich auf der y-Achse fest:
ausdruck_pj.addPage(_root, {xMin:0, xMax:220, yMin:0, yMax:200});
- Der nächste Parameter bestimmt, ob das Buch als Bitmap oder als Vektorgrafik gedruckt wird. Das Drucken als Bitmap entspricht den Druckfunktionen printAsBitmap() und printAsBitmapNum(). Sie sollten die Option auf true schalten, wenn Sie einen MovieClip oder Film mit Bitmap-Bildern und Transparenzen drucken möchten. Lassen Sie diesen Parameter weg, ist der Standardwert false und das Bild wird als Vektorgrafik gedruckt.
ausdruck_pj.addPage(_root, {xMin:0, xMax:220, yMin:0, yMax:200}, {printAsBitmap:true});
- Der letzte Parameter gibt optional an, welches Bild gedruckt werden soll. Fehlt dieser Parameter, druckt der Flash-Player das aktuelle Bild des MovieClips.
ausdruck_pj.addPage(_root, {xMin:0, xMax:400, yMin:0, yMax:400}, {printAsBitmap:false}, 1);
Bildmarkierungen |
Die Bildmarkierungen #b und #p haben bei der Arbeit mit einem PrintJob-Objekt keine Wirkung und werden einfach ignoriert. Mit dem Objekt können Sie nicht alle Bilder eines MovieClips auf einmal ausdrucken. Stattdessen müssen Sie für jede Seite, die Sie drucken möchten, die Methode addPage() ausführen und die Seite zum Druck hinzufügen. |
Wenn Sie den dritten oder vierten Parameter setzen möchten, ohne den oder die optionalen Parameter davor zu verwenden, übergeben Sie für diese einfach null als Wert:
ausdruck_pj.addPage(_root, null, null, 2);
Obige Zeile besagt, dass im Hauptfilm Bild 2 gedruckt wird, dass aber keine Angaben zum Druckbereich oder zum Drucken als Bitmap gemacht wurden.
Schritt für Schritt: Drucken mit dem PrintJob-Objekt
Das Beispiel drucken.fla lässt sich in Flash 8 oder Flash MX 2004 sehr komfortabel mit dem PrintJob-Objekt realisieren und sogar ein wenig erweitern:
Fügen Sie die Ereignisprozedur für die Drucken-Schaltfläche in das erste Schlüsselbild des Hauptfilms ein:
drucken_btn.onRelease = function() {
Instanziieren Sie das PrintJob-Objekt und weisen Sie es einer Variablen zu:
var ausdruck_pj:PrintJob = new PrintJob();
Beginnen Sie mit der Methode start() die Aufnahme von Seiten zum Druck.
ausdruck_pj.start();
Fügen Sie eine Seite mit addPage() hinzu:
ausdruck_pj.addPage(_root, {xMin:0, xMax:220, yMin:0, yMax:200}, {printAsBitmap:false}, 1);
Der Druckbereich der Seite spart in diesem Fall die Navigationsleiste auf der rechten Seite aus. Die letzten zwei Parameter könnten Sie in unserem Beispiel auch weglassen.
Mit send() führen Sie den Druck aus:
ausdruck_pj.send();
Löschen Sie das PrintJob-Objekt mit delete, um den Platz im Hauptspeicher freizugeben:
delete ausdruck_pj; };
Abbildung 7.5 Der Nutzer klickt auf das Drucker-Symbol, woraufhin das bekannte Drucken-Bedienfeld erscheint. Am Ende werden nur die zwei Zahnräder ausgedruckt (hier als Bitmap-Bild).
Die Datei mit dem PrintJob-Objekt finden Sie unter drucken_printjob_AS2.fla auf der CD-ROM im Ordner Flash8 bzw. Flash MX2004. Eine Flash MX-Variante gibt es nicht, da es dort das PrintJob-Objekt nicht gibt.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.