Paketflash.ui
Klassepublic final class ContextMenu
VererbungContextMenu Inheritance EventDispatcher Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Mithilfe der ContextMenu-Klasse können die Elemente des Flash Player-Kontextmenüs bearbeitet werden. Das Kontextmenü wird in Flash Player durch einen Rechtsklick (Windows) oder durch einen Klick bei gedrückter <Ctrl>-Taste (Macintosh) aufgerufen. Mit den Methoden und Eigenschaften der ContextMenu-Klasse können Sie benutzerdefinierte Menüelemente hinzufügen, die Anzeige der integrierten Kontextmenüelemente (beispielsweise "Vergrößern" und "Drucken") steuern und Kopien von Menüs erstellen.

Sie können ein ContextMenu-Objekt an eine bestimmte Schaltfläche, an einen Movieclip, an ein Textfeldobjekt oder an eine ganze Filmstufe anhängen. Sie verwenden hierfür die menu-Eigenschaft der Klasse Button, MovieClip oder TextField. Weitere Informationen zur menu-Eigenschaft finden Sie unter "Button.menu", "MovieClip.menu" und "TextField.menu".

Wenn Sie einem ContextMenu-Objekt neue Elemente hinzufügen möchten, erstellen Sie ein ContextMenuItem-Objekt und fügen dieses Objekt anschließend dem ContextMenu.customItems-Array hinzu. Weitere Informationen zum Erstellen von Kontextmenüelementen finden Sie im Abschnitt zu "ContextMenuItem-Klasse".

Flash Player verfügt über drei Arten von Kontextmenüs: Das Standardmenü (wird eingeblendet, wenn Sie mit der rechten Maustaste in Flash Player klicken), das Bearbeitungsmenü (wird eingeblendet, wenn Sie mit der rechten Maustaste auf ein auswählbares oder bearbeitbares Textfeld klicken) und ein Fehlermenü (wird eingeblendet, wenn eine SWF-Datei nicht in Flash Player geladen werden konnte). Mit der ContextMenu-Klasse können nur das Standard- und das Bearbeitungsmenü verändert werden.

Benutzerdefinierte Menüelemente werden immer oben im Kontextmenü von Flash Player oberhalb der integrierten Menüelemente angezeigt. Integrierte und benutzerdefinierte Menüelemente sind durch eine Trennlinie getrennt. Einem Kontextmenü können maximal 15 benutzerdefinierte Menüelemente hinzugefügt werden. Sie können die Option "Einstellungen" nicht aus dem Kontextmenü entfernen. Dieses ist in Flash erforderlich, damit Benutzer auf die Einstellungen zugreifen können, die für die Zugriffsschutz- und Speicherungseinstellungen auf dem Computer gelten. Des Weiteren ist auch ein Entfernen der Menüoption "Über..." nicht möglich. Diese ist notwendig, damit Benutzer sich über die verwendete Version von Flash Player informieren können.

Bevor Sie jedoch die Methoden eines ContextMenu-Objekts aufrufen können, müssen Sie dieses Objekt mithilfe des Konstruktors ContextMenu() erstellen.

Beispiele anzeigen

Siehe auch

ContextMenuItem-Klasse
flash.display.InteractiveObject.contextMenu


Öffentliche Eigenschaften
 EigenschaftDefiniert von
  builtInItems : ContextMenuBuiltInItems
Ein Objekt mit den folgenden Eigenschaften der ContextMenuBuiltInItems-Klasse: forwardAndBack, loop, play, print, quality, rewind, save und zoom.
ContextMenu
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  customItems : Array
Ein Array von ContextMenuItem-Objekten.
ContextMenu
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
Erstellt ein ContextMenu-Objekt.
ContextMenu
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
Erstellt eine Kopie des angegebenen ContextMenu-Objekts.
ContextMenu
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
  
Blendet alle integrierten Menüelemente im angegebenen ContextMenu-Objekt aus (außer "Einstellungen").
ContextMenu
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
   Wird ausgelöst, wenn ein Benutzer ein Kontextmenü zum ersten Mal erzeugt, jedoch bevor der Inhalt des Kontextmenüs angezeigt wird.ContextMenu
Eigenschaftsdetail
builtInItemsEigenschaft
builtInItems:ContextMenuBuiltInItems  [read-write]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Ein Objekt mit den folgenden Eigenschaften der ContextMenuBuiltInItems-Klasse: forwardAndBack, loop, play, print, quality, rewind, save und zoom. Wenn diese Eigenschaften auf false gesetzt werden, führt dies zum Entfernen der entsprechenden Menüelemente aus dem angegebenen ContextMenu-Objekt. Diese Eigenschaften sind aufzählbar und standardmäßig auf true gesetzt.


Implementierung
    public function get builtInItems():ContextMenuBuiltInItems
    public function set builtInItems(value:ContextMenuBuiltInItems):void

Siehe auch

customItemsEigenschaft 
customItems:Array  [read-write]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Ein Array von ContextMenuItem-Objekten. Jedes Objekt im Array steht für ein von Ihnen definiertes Kontextmenüelement. Mit dieser Eigenschaft können Sie die benutzerdefinierten Menüelemente hinzufügen, entfernen und ändern.

Wenn Sie neue Menüelemente hinzufügen möchten, erstellen Sie ein ContextMenuItem-Objekt und fügen dieses dem customItems-Array hinzu (beispielsweise mithilfe von Array.push()). Weitere Informationen zum Erstellen von Menüelementen finden Sie im Abschnitt zur ContextMenuItem-Klasse.


Implementierung
    public function get customItems():Array
    public function set customItems(value:Array):void

Siehe auch

Konstruktordetail
ContextMenu()Konstruktor
public function ContextMenu()

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein ContextMenu-Objekt.

Siehe auch

Methodendetail
clone()Methode
public function clone():ContextMenu

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt eine Kopie des angegebenen ContextMenu-Objekts. Die Kopie übernimmt alle Eigenschaften des ursprünglichen Menüobjekts.

Rückgabewerte
ContextMenu — Ein ContextMenu-Objekt mit allen Eigenschaften des Originalobjekts.
hideBuiltInItems()Methode 
public function hideBuiltInItems():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Blendet alle integrierten Menüelemente im angegebenen ContextMenu-Objekt aus (außer "Einstellungen"). In der Debugger-Version von Flash Player wird das Menüelement "Debuggen" angezeigt. In SWF-Dateien ohne aktiviertes Remote-Debuggen ist es jedoch abgeblendet.

Mit dieser Methode werden nur Menüelemente aus dem Standardkontextmenü ausgeblendet. Sie wirkt sich nicht auf Elemente des Bearbeitungs- oder Fehlermenüs aus.

Bei dieser Methode werden alle booleschen Elemente von my_cm.builtInItems auf false gesetzt. Sie können bestimmte integrierte Elemente sichtbar machen, indem Sie den entsprechenden Eintrag in my_cm.builtInItems auf true setzen.

Siehe auch

Ereignisdetail
menuSelect Ereignis
Ereignisobjekttyp: flash.events.ContextMenuEvent
ContextMenuEvent.type property = flash.events.ContextMenuEvent.MENU_SELECT

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn ein Benutzer ein Kontextmenü zum ersten Mal erzeugt, jedoch bevor der Inhalt des Kontextmenüs angezeigt wird. Auf diese Weise können in Ihrem Programm die Kontextmenüelemente bearbeitet werden, bevor das Menü angezeigt wird. Das Kontextmenü wird durch einen Rechtsklick mit dem Zeigegerät erzeugt.

Definiert den Wert der Eigenschaft type eines menuSelect-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
contextMenuOwnerDas Anzeigelistenobjekt, dem das Menü zugeordnet ist.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
mouseTargetDas Anzeigelistenobjekt, auf das der Benutzer mit rechts geklickt hat, um das Kontextmenü anzuzeigen.
targetDas ContextMenu-Objekt, das angezeigt werden soll. Das Ziel ist nicht immer das Objekt in der Anzeigeliste, in der der Ereignis-Listener registriert wurde. Mit der Eigenschaft currentTarget können Sie auf das Objekt in der Anzeigeliste zugreifen, das das Ereignis derzeit verarbeitet.
Beispiele Verwendung von Beispielen
ContextMenuExample.as

Im folgenden Beispiel wird die Klasse ContextMenuExample verwendet, um das Standard-Kontextmenüs von der Bühne zu entfernen und ein neues Menüelement hinzuzufügen, das bei Mausklick die Farbe eines Quadrats auf der Bühne ändert. Dies wird in den folgenden Schritten erreicht:
  1. Die Eigenschaft myContextMenu wird deklariert und anschließend einem neuen ContextMenu-Objekt zugewiesen, und die Eigenschaft redRectangle vom Typ "Sprite" wird deklariert.
  2. Die Methode removeDefaultItems() wird aufgerufen, bei der alle integrierten Kontextmenüelemente mit Ausnahme der Option zum Drucken entfernt werden.
  3. Die Methode addCustomMenuItems() wird aufgerufen, bei der ein Menüelement mit der Bezeichnung Red to Black mithilfe der Methode push() des Arrays im defaultItems-Array positioniert wird. Ein menuItemSelect-Ereignis-Listener wird dem ContextMenuItem-Objekt hinzugefügt. Die verknüpfte Methode lautet menuItemSelectHandler(). Bei dieser Methode werden einige trace()-Anweisungen gedruckt, wenn auf das Kontextmenü zugegriffen und die Option Red to Black ausgewählt wird. Darüber hinaus wird das rote Quadrat entfernt und durch ein schwarzes ersetzt.
  4. Ein menuSelect-Ereignis-Listener mit der verknüpften Methode menuSelectHandler() wird hinzugefügt. Hiermit werden drei trace()-Anweisungen gedruckt, wenn ein Element im Kontextmenü ausgewählt wird.
  5. Durch addChildren() wird anschließend ein rotes Quadrat gezeichnet und der Anzeigeliste hinzugefügt, in der dieses umgehend angezeigt wird.
  6. Zum Schluss wird myContextMenu dem Kontextmenü des Sprite redRectangle zugewiesen, sodass das benutzerdefinierte Kontextmenü nur angezeigt wird, wenn sich der Mauszeiger über dem Quadrat befindet.
package {
    import flash.ui.ContextMenu;
    import flash.ui.ContextMenuItem;
    import flash.ui.ContextMenuBuiltInItems;
    import flash.events.ContextMenuEvent;
    import flash.events.ContextMenuEvent;
    import flash.display.Sprite;
    import flash.display.Shape;
    import flash.text.TextField;

    public class ContextMenuExample extends Sprite {
        private var myContextMenu:ContextMenu;
        private var menuLabel:String = "Reverse Colors";
        private var textLabel:String = "Right Click";
        private var redRectangle:Sprite;
        private var label:TextField;
        private var size:uint = 100;
        private var black:uint = 0x000000;
        private var red:uint = 0xFF0000;

        public function ContextMenuExample() {
            myContextMenu = new ContextMenu();
            removeDefaultItems();
            addCustomMenuItems();
            myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);

            addChildren();
            redRectangle.contextMenu = myContextMenu;
        }

        private function addChildren():void {
            redRectangle = new Sprite();
            redRectangle.graphics.beginFill(red);
            redRectangle.graphics.drawRect(0, 0, size, size);
            addChild(redRectangle);
            redRectangle.x = size;
            redRectangle.y = size;
            label = createLabel();
            redRectangle.addChild(label);
        }

        private function removeDefaultItems():void {
            myContextMenu.hideBuiltInItems();
            var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
            defaultItems.print = true;
        }

        private function addCustomMenuItems():void {
            var item:ContextMenuItem = new ContextMenuItem(menuLabel);
            myContextMenu.customItems.push(item);
            item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
        }

        private function menuSelectHandler(event:ContextMenuEvent):void {
            trace("menuSelectHandler: " + event);
        }

        private function menuItemSelectHandler(event:ContextMenuEvent):void {
            trace("menuItemSelectHandler: " + event);
            var textColor:uint = (label.textColor == black) ? red : black;
            var bgColor:uint = (label.textColor == black) ? black : red;
            redRectangle.graphics.clear();
            redRectangle.graphics.beginFill(bgColor);
            redRectangle.graphics.drawRect(0, 0, size, size);
            label.textColor = textColor;
        }

        private function createLabel():TextField {
            var txtField:TextField = new TextField();
            txtField.text = textLabel;
            return txtField;
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/ui/ContextMenu.html