|
Flash CS4-Ressourcen |
Drucken zur LaufzeitDrucken aus SWF-Dateien zur Laufzeit mit ActionScript 2.0Sie können Ihren Flash-Dokumenten eine Druckfunktion hinzufügen, damit die Benutzer vom Flash Player aus drucken können. Sie können hierzu entweder die ActionScript®-Klasse „PrintJob“ oder die ActionScript-Funktionen „print()“ bzw. „printAsBitmap()“ verwenden. Die Benutzer können auch das Kontextmenü im Flash Player öffnen und den Befehl „Drucken“ wählen. Außerdem haben Benutzer, die den Flash Player nicht zum Drucken verwenden möchten, die Möglichkeit, vom Browser aus zu drucken, indem sie im Browserfenster den Befehl „Datei“ > „Drucken“ wählen. Das direkte Drucken über Flash Player bietet jedoch im Vergleich zum Drucken über das Druckmenü eines Browsers unter anderem folgende Vorteile:
Hinweis: Weitere Informationen zum Drucken von SWF-Dateien zur Laufzeit mithilfe von ActionScript 3.0 finden Sie unter Drucken im Handbuch „Programmieren mit ActionScript 3.0“.
Steuern der Druckmöglichkeiten zur LaufzeitBeachten Sie beim Vorbereiten von Dokumenten und Movieclips auf den Druck die folgenden Richtlinien; dadurch können Sie die Druckmöglichkeiten für Benutzer steuern:
ActionScript 2.0-Klasse „PrintJob“ verwendenZusätzlich zur verbesserten Druckfunktionalität über die Methode print () ermöglicht die ActionScript-Klasse „PrintJob“ auch das Bereitstellen von dynamischem Inhalt zur Laufzeit, das Anzeigen eines Dialogfelds für einzelne Druckvorgänge für den Benutzer sowie das Drucken eines nicht skalierten Dokuments mit Proportionen, die den Proportionen des Inhalts entsprechen. Diese Funktion ist besonders zum Bereitstellen und Drucken von externem dynamischem Inhalt nützlich, z. B. aus Datenbanken und dynamischem Text. Wenn Ihr Dokument zusätzlich Eigenschaften besitzt, die durch die Methode PrintJob.start() belegt werden, kann das Dokument die Druckereinstellungen des Benutzers, wie etwa Höhe, Breite und Ausrichtung der Seite lesen. Außerdem können Sie Ihr Dokument so konfigurieren, dass Flash-Inhalte dynamisch formatiert werden, damit sie für die Druckereinstellungen geeignet sind. Hinweis: Die PrintJob-Klasse wird nur von Flash Player-Versionen ab Version 7 unterstützt.
Hinweis: Weitere Informationen zum Drucken von SWF-Dateien zur Laufzeit mithilfe von ActionScript 2.0 finden Sie im Handbuch ActionScript 2.0 in Adobe Flash - Arbeitshandbuch.
Druckaufträge erstellenDa Sie zwischen Ihren Aufrufen der Methoden PrintJob.start() und PrintJob.send() einen Druckauftrag an das Betriebssystem des Benutzers weiterleiten (Spooling) und sich die PrintJob-Funktionen vorübergehend auf die interne Ansicht des Flash-Inhalts auf dem Bildschirm in Flash Player auswirken können, sollten Sie druckspezifische Aktivitäten nur zwischen den Aufrufen der Funktionen PrintJob.start() und PrintJob.send() ausführen. Flash-Inhalt sollte beispielsweise zwischen den Funktionen PrintJob.start() und PrintJob.send() nicht vom Benutzer beeinflusst werden. Sie sollten die Formatierung Ihres Druckauftrags stattdessen abschließen, dem Druckauftrag Seiten hinzufügen und ihn an den Drucker senden. Druckaufträge startenDas Aufrufen der ActionScript 2.0-Methode PrintJob.start() weist den Flash Player an, den Druckauftrag an das Betriebssystem des Benutzers weiterzuleiten (Spoolvorgang). Außerdem wird hierdurch das Betriebssystem angewiesen, das Dialogfeld „Drucken“ anzuzeigen. Wenn der Benutzer eine Option zum Starten des Druckvorgangs auswählt, gibt die Methode PrintJob.start() den Wert true zurück. (Wenn der Benutzer den Druckauftrag abbricht, wird der Wert false zurückgegeben, und das Skript ruft nur die Funktion delete auf). Bei erfolgreicher Ausführung der Methode PrintJob.start() werden die Werte für die Eigenschaften paperHeight, paperWidth, pageHeight, pageWidth und orientation festgelegt. Bei einigen Betriebssystemen kann ein zusätzliches Dialogfeld angezeigt werden, bis der Spoolvorgang abgeschlossen ist und die Funktion PrintJob.send aufgerufen wird: Aufrufen von PrintJob.addPage() und PrintJob.send() sollten möglichst schnell erfolgen. Wenn zwischen dem Aufruf der Funktion PrintJob.start() und dem Aufruf der Funktion PrintJob.send(), die zum Senden des Druckauftrags an den Drucker dient, 10 Sekunden vergehen, wird vom Flash Player tatsächlich nur die Funktion PrintJob.send() aufgerufen, sodass die mit der Funktion PrintJob.addPage() hinzugefügten Seiten gedruckt werden und der Spoolvorgang beendet wird. Beim Erstellen eines neuen Druckauftrags werden die Eigenschaften von PrintJob() mit Null initialisiert. Wenn die Funktion PrintJob.start() aufgerufen wird, nachdem der Benutzer im entsprechenden Dialogfeld des Betriebssystems die Druckoption ausgewählt hat, ruft Flash Player die Druckeinstellungen aus dem Betriebssystem ab. Die Funktion PrintJob.start() übernimmt folgende Eigenschaften:
Druckaufträgen Seiten hinzufügenMit der ActionScript 2.0-Methode PrintJob.addPage() können Sie einem Druckauftrag Seiten hinzufügen. Die Methode kann bis zu vier Parameter enthalten. Der einzige erforderliche Parameter ist target/level. Die drei optionalen Parameter sind printArea, options und frameNum. Wenn Sie keinen bestimmten optionalen Parameter, sondern andere optionale Parameter verwenden, geben Sie NULL anstelle des ausgelassenen optionalen Parameters ein. Bei Verwendung aller vier Parameter lautet die Syntax der Funktion folgendermaßen: MyPrintJob.addPage(target[,printArea:Object, options:Object, frameNum:Number]):boolean; Bei Angabe von ungültigen Parametern werden für den Druckauftrag die Standardwerte der Parameter verwendet. Jeder Aufruf zum Hinzufügen einer neuen Seite ist eindeutig zugeordnet, sodass Sie die Parameter ändern können, ohne dass die für vorherige Aufrufe festgelegten Parameter davon beeinflusst werden. Sie können beispielsweise angeben, dass eine Seite als Bitmapbild und eine andere Seite als Vektorgrafik gedruckt werden soll. Sie können einem Druckauftrag so viele Seiten wie erforderlich hinzufügen. Jeder Aufruf zum Hinzufügen einer Seite entspricht einer gedruckten Seite. Hinweis: Jede ActionScript-Code, der zum Ändern eines resultierenden Ausdrucks aufzurufen ist, muss vor dem Aufruf der Methode PrintJob.addPage() ausgeführt werden. Der ActionScript-Code kann jedoch vor oder nach einem neuen PrintJob()method ausgeführt werden. Wenn ein Bild einen Aufruf der Methode PrintJob.addPage() enthält, ist durch den Aufruf allein nicht sichergestellt, dass beim Drucken des Bilds das ActionScript-Skript zu diesem Bild ausgeführt wird.
Ziel angebenFür den ActionScript 2.0-Parameter target können Sie entweder eine Zahl angeben, die einer Stufe entspricht (z. B. 0 für „_root document“), oder einen String, der den Instanznamen eines Movieclips ("myMovieClip") angibt. Druckbereich festlegenFür den optionalen Parameter printArea können folgende Werte angegeben werden: {xMin:Number, xMax:Number, yMin:Number, yMax:Number}
Die Werte xMin, xMax, yMin und yMax stehen für Bildschirmpixel in Relation zur Zielstufe oder zum Registrierungspunkt des Movieclips. Die Ausrichtung des Druckbereichs geht von der linken oberen Ecke des druckbaren Bereichs auf der Seite aus. Wenn der Druckbereich größer als der druckbare Bereich auf der Seite ist, werden die Druckdaten abgeschnitten, die über den rechten und unteren Rand der Seite hinausgehen. ![]()
Wenn Sie keinen Druckbereich oder einen ungültigen Druckbereich angeben, wird als Standardwert für diesen Parameter der Bühnenbereich des Stammdokuments verwendet. Skalieren, Punkt und PixelBei einem Druckauftrag mithilfe der PrintJob-Klasse wird der Flash-Inhalt standardmäßig ohne Skalierung gedruckt. Beispiel: Ein Objekt, das auf dem Bildschirm 144 Pixel breit ist, wird mit einer Breite von 144 Punkt bzw. 2 Zoll gedruckt (1 Punkt entspricht 1 Pixel; im Authoring-Tool entsprechen 72 Pixel einem Zoll, und auf Papier entsprechen 72 Punkt einem Zoll). Damit sich der Benutzer besser vorstellen kann, wie der Flash-Bildschirminhalt als gedruckte Seite aussehen wird, ist es wichtig, die Relation zwischen den Bildschirm- und Druckmaßeinheiten zu kennen. „Pixel“ ist eine Bildschirmmaßeinheit, während „Punkt“ eine Druckmaßeinheit ist. Sowohl 1 Pixel als auch 1 Punkt entspricht 1/72 Zoll (0,35277 mm). Ein Twip entspricht 1/20 Punkt bzw. Pixel (0,01764 mm). In der folgenden Liste werden die Relationen zwischen den Maßeinheiten weiter verdeutlicht.
Druck als Vektorgrafik oder Bitmapbild angebenMit dem Parameter options können Sie angeben, ob der Ausdruck als Vektorgrafik oder als Bitmapbild erfolgen soll. Verwenden Sie für diesen optionalen Parameter folgende Syntax: {printAsBitmap:boolean}
Der Standardwert ist false, dabei erfolgt der Ausdruck im Vektorformat. Beachten Sie bei der Auswahl des Druckformats folgende Hinweise:
Zu druckende Bilder angebenMit dem Parameter frameNum können Sie ein bestimmtes Bild zum Drucken angeben. Wenn Sie keine Bildnummer für diesen Parameter angeben, wird standardmäßig das aktuelle Bild des Ziels bzw. der Stufe gedruckt, das bzw. die beim Hinzufügen der Seiten für den ersten Parameter angegeben wurde. Drucken oder Löschen von Druckaufträgen
Bilder unabhängig von der PrintJob-Klasse druckenDie PrintJob-Klasse von ActionScript 2.0, die für Flash Player 7 und neuere Versionen verfügbar ist, bietet gegenüber den Druckmethoden print() und printAsBitmap() erhebliche Vorteile. Wenn Sie jedoch Druckaufträge über Flash Player 6 und frühere Versionen bis hin zu Flash Player 4.0.25 (Windows) und 4.0.20 (Macintosh) ausführen möchten, können Sie die Funktionen print() and printAsBitmap() sowie Bildbezeichnungen weiterhin verwenden. Wenn Sie Druckvorgänge unabhängig von der PrintJob-Klasse mit Flash Player ausführen möchten, können Sie einzelne Bilder zum Drucken angeben und deren Druckbereich festlegen. Druckbereiche angeben (ohne das PrintJob-Objekt zu verwenden)Standardmäßig wird der Druckbereich beim Drucken von Bildern durch die Bühne des Films bestimmt. Objekte, die über die Bühne hinausreichen, werden abgeschnitten und nicht gedruckt. Geladene Filme verwenden ihre eigene Bühnengröße als Druckbereich, nicht die Bühnengröße des SWF-Hauptdatei. Als Alternative zur Bühnengröße eines Dokuments können Sie die folgenden Druckbereiche festlegen:
Funktion „print()“ verwenden (ohne das PrintJob-Objekt zu verwenden)Die Grundsyntax der Funktion print() von ActionScript 2.0, die Sie einer Schaltfläche oder einem anderen Auslöser im Dokument zur Aktivierung eines Druckvorgangs zuweisen können, lautet folgendermaßen: print (target, "Bounding box"); Der Parameter „target“ gibt den Speicherort der zu druckenden Bilder an, während der Parameter „bounding box“ den Druckbereich angibt. Sie können die Funktion print() einer Schaltfläche, einem Bild oder Movieclip im Dokument zuweisen, damit die Benutzer Flash-Inhalt drucken können. Wenn Sie die Funktion print() einem Bild zuweisen, wird die Aktion ausgeführt, wenn der Abspielkopf das angegebene Bild erreicht. Mit der Funktion print() können Sie zusätzlich zu den Bildern in der Hauptzeitleiste auch Bilder in anderen Movieclips drucken. Mit einer print()-Funktion wird zwar nur jeweils eine Zeitleiste zum Drucken ausgewählt, Sie können jedoch eine beliebige Anzahl von Bildern in dieser Zeitleiste zum Drucken auswählen. Wenn Sie einer Schaltfläche oder einem Bild die Funktion print() mehrmals zuweisen, wird das Dialogfeld „Drucken“ für jede ausgeführte Aktion angezeigt. Weitere Informationen finden Sie im Abschnitt zur print-Funktion im ActionScript 2.0-Referenzhandbuch. |