7 Drucken und das Kontextmenü
Sie werden lernen:
- Wie wird aus einer Schaltfläche ein Knopf zum Drucken?
- Wie drucken Sie einzelne Bilder?
- Was bietet das PrintJob-Objekt?
- Wie steuern Sie das Kontextmenü?
Die Presse ist für mich Druckerschwärze auf Papier. – Otto von Bismarck
Was passiert eigentlich, wenn der Nutzer im Browser eine Webseite mit Flash-Film druckt? Er druckt das gerade aktuelle Bild. Allerdings muss der Nutzer recht geschickt sein, um immer genau das Bild zu erwischen, das er möchte. Deswegen bietet ActionScript eigene Druckfunktionen zum Ausdrucken auf Knopfdruck. Noch mehr Steuerungsmöglichkeiten besitzt das PrintJob-Objekt. Doch es steht erst in ActionScript 2.0 und damit in Flash 8 und Flash MX 2004 zur Verfügung. Der letzte Abschnitt dieses Kapitels dreht sich rund um das Kontextmenü, mit dem der Nutzer unter anderem drucken oder auch nicht drucken kann.
7.1 Drucken auf Knopfdruck
Abbildung 7.1 Die Druckfunktionen im Aktionen-Bedienfeld
ActionScript bietet für das Drucken vier Funktionen. Sie finden die vier im Aktionen-Bedienfeld unter Globale Funktionen • Druckfunktionen in Flash 8 und MX 2004. In Flash MX verbergen sie sich unter Aktionen • Druck.
Von den vier Druckfunktionen (1) kommt am häufigsten print (Ziel, Begrenzung) zum Einsatz.
- print(Ziel, Begrenzung) druckt alle Bilder eines MovieClips. Das ist das Ziel. Die Begrenzung gibt an, wie groß der Ausschnitt ist, der gedruckt wird. Für die Begrenzung bietet ActionScript drei Werte, die alle als Strings, also in Anführungszeichen, angegeben werden:
"bframe" druckt jedes Bild des MovieClips in seinen Proportionen. Die Bilder werden allerdings automatisch auf die Papiergröße skaliert. |
"bmax" verwendet die Maße aller Bilder des MovieClips und berechnet daraus die Größe aller Bilder zusammen als größtmöglichen Druckbereich. Dieser Druckbereich wird auf Papiergröße skaliert und als solches gedruckt. |
"bmovie" wählt die Größe des Druckbereiches nach einem Bild, das als Bildmarkierung den Namen #b hat. Wie Sie mit Bildmarkierungen arbeiten, lesen Sie in Kapitel 5, »Einfache Filmsteuerung«, nach. |
Testen |
Verwenden Sie zum Testen der Druckfunktion einen Druckertreiber, der ein digitales Druckerzeugnis, beispielsweise Pixelbilder oder PDFs, generiert. Wenn Sie einen echten Drucker verwenden, verschwenden Sie nur unnötig Papier. |
- printNum(Dokumentebene, Begrenzung) druckt eine Dokumentebene (auch Level oder Stufe). Als zweiter Parameter folgt wiederum die Begrenzung.
- printAsBitmap(Ziel, Begrenzung) druckt einen MovieClip (Ziel) als Bitmap-Bild. Diese Funktion bietet gute Ergebnisse, wenn im MovieClip Bitmap-Bilder und Transparenzen enthalten sind.
- printAsBitmapNum(Dokumentebene, Begrenzung) druckt eine Dokumentebene als Bitmap-Bild.
Dokumentebene |
Der Hauptfilm mit all seinen MovieClips besitzt die Dokumentebene 0. Externe Filme werden auf Dokumentebenen darüber geladen. Dokumentebenen heißen auch Level oder Stufe. Vorsicht, verwechseln Sie sie nicht mit den normalen Ebenen in der Zeitleiste! Mehr dazu erfahren Sie in Kapitel 18, »Externe Filme«. |
Auf der CD-ROM finden Sie die Datei drucken.fla (in den Ordnern Flash8, FlashMX2004, und FlashMX) Sie besteht aus zwei MovieClips über Zahnräder, einer Stopp- und Abspiel-Schaltfläche und einer Druckschaltfläche rechts oben. Diese drei Schaltflächen sollen Sie nun zum Leben erwecken.
Schritt für Schritt: Drucken mit Schaltfläche
In diesem Beispiel setzen Sie Ereignisprozeduren ein, die Sie bereits in Kapitel 5, »Einfache Filmsteuerung«, kennen gelernt haben.
Fügen Sie im ersten Schlüsselbild des Hauptfilms folgenden Code auf der Ebene ActionScript ein:
stop_btn.onRelease = function() { zahnRadK_mc.stop(); zahnRadG_mc.stop(); };
Diese Ereignisprozedur versieht die Stopp-Schaltfläche (stop_btn) mit Code, der die zwei MovieClips mit Zahnrädern anhält, wenn der Nutzer auf die Schaltfläche klickt (Ereignis »beim Loslassen«: onRelease).
Der Code für die Abspiel-Schaltfläche landet ebenfalls im ersten Schlüsselbild des Hauptfilms. Auch hier reagiert eine Ereignisprozedur auf das Loslassen der Abspiel-Schaltfläche (play_btn) und spielt die Zahnrad-MovieClips weiter ab:
play_btn.onRelease = function() { zahnRadK_mc.play(); zahnRadG_mc.play(); };
Für die Drucken-Schaltfläche schreiben Sie folgenden Code in das erste Schlüsselbild des Hauptfilms:
drucken_btn.onRelease = function() { print(_root, "bframe"); };
Die Druckfunktion druckt hier den Hauptfilm (_root). Da dieser nur ein Bild hat, wird auch nur eine Seite ausgedruckt. Vor dem endgültigen Ausdruck erhält der Nutzer das Drucken-Dialogfeld des Betriebssystems. Ein Umgehen dieses Dialogfelds ist aus Sicherheitsgründen nicht möglich.
Abbildung 7.2 Das Drucken-Dialogfeld hängt vom Betriebssystem ab und erscheint immer.
Die Datei mit ActionScript-Code finden Sie auf der CD-ROM unter dem Namen drucken_AS1_2.fla im Ordner Flash8 bzw. FlashMX2004 und unter dem Namen Drucken_AS1.fla im Ordner FlashMX.
Bestimmtes Bild drucken
Wenn Sie in einem MovieClip mit print(Ziel, Begrenzung) nicht alle Bilder, sondern nur ein bestimmtes Bild drucken möchten, versehen Sie es mit der Bildmarkierung #p. Das Bild selbst muss ein Schlüsselbild sein.
Abbildung 7.3 Die Bildmarkierung #p (1) zeigt, dass nur dieses Bild gedruckt werden soll.
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.