7.3 Kontextmenü
Der letzte Ort, an dem Drucken aus dem Flash-Film möglich ist, ist das Kontextmenü. Das Kontextmenü erscheint, wenn der Nutzer auf den Flash-Film mit der rechten (zweiten) Maustaste klickt. Mac-Nutzer müssen oftmals ohne zweite Maustaste auskommen. Sie drücken die -Taste und klicken mit der einen Maustaste, um das Kontextmenü aufzurufen. Das Kontextmenü sieht je nach Flash-Player-Version unterschiedlich aus: In Flash 8 bzw. dem Flash Player 8 fehlen viele Einstellungen standardmäßig (siehe Abschnitt »Kontextmenü sperren«).
Abbildung 7.6 Das Kontextmenü enthält einige Befehle, um den SWF-Film zu beeinflussen (links Flash 8, rechts Flash MX 2004).
Das Kontextmenü enthält im Flash Player 7 einen Drucken-Befehl (1) . Mit ihm entscheidet der Nutzer, ob alle Bilder des Films oder nur die Bilder mit der Bildmarkierung #p gedruckt werden sollen. Gehen Sie jedoch umsichtig damit um, im Flash Player 8 gibt es den Befehl nicht mehr standardmäßig.
Interessant ist beim Kontextmenü, wie sich das Drucken oder das gesamte Kontextmenü deaktivieren und beeinflussen lässt. Die nächsten beiden Abschnitte zeigen, wie das in älteren Flash-Versionen funktioniert. Der letzte Abschnitt kümmert sich um das ContextMenu-Objekt, eine Neuerung in Flash MX 2004 Standard und Flash MX 2004 Pro und natürlich auch in Flash 8 in beiden Versionen. Damit können Sie auch im Flash Player 8 den Drucken-Befehl einblenden.
Kein Drucken im Kontextmenü
Um das Drucken über das Kontextmenü zu deaktivieren ohne es komplett zu sperren, vergeben Sie für ein beliebiges Schlüsselbild des Hauptfilms die Bildmarkierung !#p. Diese Anweisung gilt dann für den gesamten Hauptfilm. Der Drucken-Befehl im Kontextmenü erscheint hellgrau, ist also deaktiviert.
Drucken im Browser |
Vorsicht, der Drucken-Befehl des Browsers (meist Menü Datei • Drucken) lässt sich nie deaktivieren, da der Flash-Player keine Kontrolle über den Browser besitzt. |
Abbildung 7.7 Der Drucken-Befehl ist dank der Bildmarkierung !#p deaktiviert.
Das Angenehme an diesem Trick: Er funktioniert auch in älteren Flash-Versionen und damit in ActionScript 1. Ein Beispiel finden Sie unter dem Namen drucken_kontext_AS1_2.fla auf der CD-ROM.
Kontextmenü sperren
Wenn Sie das Kontextmenü gar nicht mehr sehen möchten, können Sie es direkt beim Veröffentlichen des Flash-Films ausblenden.
Deaktivieren Sie dazu das Kontrollkästchen Menü anzeigen im Register HTML in den Einstellungen für Veröffentlichungen (Datei • Einstellungen für Veröffentlichungen) (1) (siehe Abbildung 7.8).
Wie macht Macromedia das? Der SWF-Film wird beim Veröffentlichen in eine HTML-Seite eingebunden. Um mit möglichst allen Browsern kompatibel zu sein, kommen dabei die Tags <object> und <embed> zum Einsatz.
Bei beiden Tags gibt es jeweils einen Parameter bzw. ein Attribut, mit dem sich das Kontextmenü ausschalten lässt. Die Änderung erfolgt also nicht wie bei der Bildmarkierung in Flash und im Flash-Player, sondern seitens des Browsers.
Abbildung 7.8 Versionsübergreifend: Wenn der Befehl Menü anzeigen im Register HTML bei den Einstellungen für Veröffentlichungen deaktiviert ist (1) , verschwindet das Kontextmenü.
ContextMenu-Klasse
Abbildung 7.9 Die Klasse ContextMenu finden Sie bequem im Aktionen-Bedienfeld.
In den älteren Flash-Versionen lässt sich das Kontextmenü nur bedingt steuern.
Der Drucken-Befehl ist deaktivierbar, ansonsten gibt es lediglich die Wahl zwischen aktiviertem Kontextmenü oder deaktiviertem Kontextmenü.
Hier hat Macromedia durch Flash MX 2004 bzw. 2004 Pro Abhilfe geschaffen. Nun steht die ContextMenu-Klasse zur Verfügung, mit der Sie sogar einzelne Befehle des Kontextmenüs zusammenstellen können.
Die Funktionalität der ContextMenu-Klasse finden Sie im Aktionen-Bedienfeld unter Integrierte Klassen • Film • ContextMenu.
Die Arbeit mit Kontextmenüs folgt immer einem vorgefertigten Muster. Sehen Sie sich das folgende Beispiel an, Grundlage ist die Datei drucken_kontext.fla im Ordnern Flash8 bzw. FlashMX2004.
Schritt für Schritt: Kontextmenü steuern
Der Code zum Steuern des Kontextmenüs landet im ersten Schlüsselbild des Hauptfilms (auf der Ebene ActionScript).
Zuerst instanziieren Sie ein neues ContextMenu-Objekt und weisen es einer Variablen zu.
var kontextMenue_cm:ContextMenu = new ContextMenu();
Interessanterweise erkennen die Codehinweise des ActionScript-Editors den Datentyp ContextMenu bei der strengen Typisierung nicht. Dafür wird die Endung _cm des Variablennamens erkannt und mit Codehinweisen belohnt.
Blenden Sie den Befehl zum Drucken aus:
kontextMenue_cm.builtInItems.print = false;
Die Einträge des Kontextmenüs befinden sich in dem Unterobjekt builtInItems. Sie sind Eigenschaften von builtInItems. Neben print finden Sie hier die Einträge für das Abspielen (play), Zurückspulen (rewind) und vieles mehr. Bis jetzt steht das ContextMenu-Objekt sozusagen noch auf der grünen Wiese, da es noch nicht zum Einsatz kam.
Zum Schluss müssen Sie das Kontextmenü dem Hauptfilm zuweisen. Dazu dient die Eigenschaft menu des Films.
_root.menu = kontextMenue_cm;
Diesen letzten Schritt sollten Sie gut durchdenken: Sie haben in den Schritten 1 und 2 ein ContextMenu-Objekt erstellt und ein Element daraus geändert. Das Objekt befindet sich zu diesem Zeitpunkt nur im Hauptspeicher des Rechners. Mit dem letzten Schritt sagen Sie dem Hauptfilm, dass er dieses Objekt als sein Kontextmenü verwenden soll. Erst jetzt kommt das Objekt wirklich zum Einsatz.
Die fertige Datei finden Sie unter dem Namen drucken_kontext_AS2.fla im Ordner Flash8 bzw. FlashMX2004 auf der CD-ROM zum Buch.
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.