Actionscript | Info |
var my_pj:PrintJob = new PrintJob();
|
Mit dem dem PrintJob Objekt kann man ganz gezielt Inhalte des Flashfilms definieren, die als Seiten an die Druckwarteschlange übergeben werden. Zuerst wird das Print Objekt erzeugt, dann folgt die start() Methode. Sie öffnet die Druckdialogfelder des Betriebsystems und gibt bei Erfolg den Wert true zurück. Es folgen ein oder mehrere addPage() Befehle. Mehr zu den mögichen Parametern später. Die Variable pageCount überprüft auch hier den Erfolg. Nachdem die Seiten hinzugefügt wurden, folgt die send() Methode, welche die Seiten an den Drucker sendet. |
var pageCount:Number = 0; var my_pj:PrintJob = new PrintJob (); if (my_pj.start ()) { if (my_pj.addPage (0)) { pageCount++; } } if (pageCount > 0) { my_pj.send (); } delete my_pj; |
|
addPage(target:Object, [printArea:Object], [options:Object], [frameNum:Number]) : Boolean Beispiel: my_pj.addPage("dance_mc", {xMin:0,xMax:400,yMin:0,yMax:600},{printAsBitmap:true}, 3) target: Object |
|
achdem man PrintJob.start() aufgerufen hat, kann das Dokument die Druckereinstellungen des Benutzers lesen, wie beispielsweise Höhe, Breite und Ausrichtung der Seite. Damit können Sie Ihr Dokument so konfigurieren, dass dynamisch Flash-Inhalte formatiert werden, die für die Druckereinstellungen geeignet sind. Folgende Eigenschaften können aufgerufen werden: orientation:String Die Bildausrichtung für den Druck. Die Werte sind "landscape" oder "portrait" pageHeight:Number Die Höhe des tatsächlich druckbaren Bereichs der Seite, in Punkt. pageWidth:Number Die Breite des tatsächlich druckbaren Bereichs der Seite, in Punkt. paperHeight:Number Die Gesamthöhe des Papiers, in Punkt. paperWidth:Number Die Gesamtbreite des Papiers, in Punkt. Somit ließe sich je nach Druckausrichtung eine andere addPage() Methode aufrufen. |
|
if (my_pj.orientation == "portrait") { my_pj.addPage(0,{xMin:0,xMax:600,yMin:0,yMax:800}); } else { my_pj.addPage(0,{xMin:0,xMax:750,yMin:0,yMax:600}); } |
|
on (release) { var pageCount:Number = 0; var my_pj:PrintJob = new PrintJob (); if (my_pj.start ()) { if (my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250})) { pageCount++; } } if (pageCount > 0) { my_pj.send (); } delete my_pj; } |
|
if (my_pj.addPage (0)) { pageCount++; } |
Der MC mit Instanznamen cartoon_mc beinhaltet mehrere Movieclips, die sich verschieben lassen. Will man mehrere Seiten unterschiedlichen Inhalts drucken, fügt man diese if-Struktur mehrmals hintereinander ein: |
Ist die Papierausrichtung Querformat ("landscape") wird "cartoon_mc" auf 200 % vergrößert. Hinterher wird die MC-Instanz wieder auf Originalgröße zurückgesetzt. | |
on (release) { var pageCount:Number = 0; var my_pj:PrintJob = new PrintJob (); if (my_pj.start ()) { if (my_pj.orientation == "portrait") { my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250}); pageCount++; } else { orgSize = cartoon_mc._xscale; cartoon_mc._xscale = cartoon_mc._yscale = 200; my_pj.addPage ("cartoon_mc", {xMin:0, xMax:363, yMin:0, yMax:250}); pageCount++; cartoon_mc._xscale = cartoon_mc._yscale = orgSize; } } if (pageCount > 0) { my_pj.send (); } delete my_pj; } |
|
Ein Objekt, das auf dem Bildschirm 144 Pixel breit ist, wird mit einer Breite von 144 Punkt bzw. 2 Zoll gedruckt. Die Eigenschaft paperWidth gibt den druckbaren Bereich in Punkt zurück. Breite der Movieclipinstanz rainbow_mc wird auf die Breite des druckbaren Bereiches des Papiers gebracht. Damit auch die Höhe von rainbow_mc entsprechend umgerechnet werden kann, wird der Wert in Prozent mittels _xscale und _yscale zugewiesen. Nach dem Drucken, wird die Größe wieder auf 100% gesetzt. |
|
on (release) { var pageCount:Number = 0; var my_pj:PrintJob = new PrintJob (); if (my_pj.start ()) { breiteP = my_pj.paperWidth; breiteM = rainbow_mc._width; rainbow_mc._xscale = rainbow_mc._yscale = (100 / breiteM) * breiteP; if (my_pj.addPage ("rainbow_mc")) { pageCount++; } rainbow_mc._xscale = rainbow_mc._yscale = 100; } if (pageCount > 0) { my_pj.send (); } delete my_pj; } |