| Paket | flash.ui |
| Klasse | public final class ContextMenu |
| Vererbung | ContextMenu NativeMenu EventDispatcher Object |
| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Unterstützung für mobile Browser: Diese Klasse wird in mobilen Browsern nicht unterstützt.
AIR-Profilunterstützung: Diese Funktion wird auf mobilen Geräten oder Geräten mit AIR für TV nicht unterstützt. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.
In Flash Player öffnen Benutzer das Kontextmenü, indem sie mit der rechten Maustaste (Windows oder Linux) bzw. bei gedrückter Ctrl-Taste (Macintosh) auf „Flash Player“ klicken. Sie können die Methoden und Eigenschaften der ContextMenu-Klasse verwenden, um benutzerdefinierte Menüelemente hinzuzufügen, die Anzeige integrierter Menüelemente (z. B. Einzoomen und Drucken) zu steuern, oder um Kopien von Menüs zu erstellen. In AIR gibt es keine integrierten Elemente und kein Standardkontextmenü.
In Flash Professional können Sie ein ContextMenu-Objekt an eine bestimmte Schaltfläche, an einen Movieclip, an ein Textfeldobjekt oder an eine ganze Filmstufe anhängen. Dazu verwenden Sie die contextMenu-Eigenschaft der InteractiveObject-Klasse.
In Flex oder Flash Builder können nur Komponenten der obersten Ebene in der Anwendung über Kontextmenüs verfügen. Wenn zum Beispiel ein DataGrid-Steuerelement untergeordnetes Element eines TabNavigator- oder VBox-Containers ist, kann das DataGrid-Steuerelement kein eigenes Kontextmenü haben.
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. In AIR wird nur das Bearbeitungsmenü angezeigt.
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. 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. (In AIR werden die integrierten Menüelemente „Einstellungen“ und „Über“ nicht verwendet.)
Sie können einem Kontextmenü in Flash Player nicht mehr als 15 benutzerdefinierte Elemente hinzufügen. In AIR gibt es keine explizite Beschränkung für die Anzahl der Elemente in einem Kontextmenü.
Bevor Sie jedoch die Methoden eines ContextMenu-Objekts aufrufen können, müssen Sie dieses Objekt mithilfe des Konstruktors ContextMenu() erstellen.
Verwandte API-Elemente
| Eigenschaft | Definiert von | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
Eine Instanz der ContextMenuBuiltInItems-Klasse mit den folgenden Eigenschaften: forwardAndBack, loop, play, print, quality, rewind, save und zoom. | ContextMenu | ||
| clipboardItems : ContextMenuClipboardItems
Eine Instanz der ContextMenuClipboardItems-Klasse mit den folgenden Eigenschaften: cut, copy, paste, delete, selectAll. | ContextMenu | ||
| clipboardMenu : Boolean
Gibt an, ob das Zwischenablagemenü benutzt werden soll. | ContextMenu | ||
![]() | constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | |
| customItems : Array
Ein Array von ContextMenuItem-Objekten. | ContextMenu | ||
| isSupported : Boolean [statisch] [schreibgeschützt]
Die isSupported-Eigenschaft hat den Wert „true“, wenn die ContextMenu-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“. | ContextMenu | ||
| items : Array [override]
Das Array der benutzerdefinierten Elemente in diesem Menü. | ContextMenu | ||
| link : URLRequest
Der URLRequest des Links. | ContextMenu | ||
| numItems : int [override] [schreibgeschützt]
Die Anzahl der Elemente in diesem Menü. | ContextMenu | ||
![]() | parent : NativeMenu [schreibgeschützt]
Das übergeordnete Menü. | NativeMenu | |
| Methode | Definiert von | ||
|---|---|---|---|
Erstellt ein ContextMenu-Objekt. | ContextMenu | ||
![]() | 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 | |
![]() |
Fügt am Ende des Menüs ein Menüelement hinzu. | NativeMenu | |
[override]
Fügt am Ende des Menüs ein Menüelement hinzu. | ContextMenu | ||
![]() |
Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement eingefügt wird. | NativeMenu | |
![]() |
Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement an der angegebenen Position eingefügt wird. | NativeMenu | |
[override]
Erstellt eine Kopie des angegebenen ContextMenu-Objekts. | ContextMenu | ||
[override]
Gibt an, ob dieses Menü das angegebene Menüelement enthält. | ContextMenu | ||
![]() |
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | |
[override]
Blendet dieses Menü an der angegebenen Position ein. | ContextMenu | ||
[override]
Ruft das Menüelement am angegebenen Index ab. | ContextMenu | ||
![]() |
Ruft das Menüelement mit dem angegebenen Namen ab. | NativeMenu | |
[override]
Ruft die Position des angegebenen Elements ab. | ContextMenu | ||
![]() |
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | |
![]() |
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 | ||
![]() |
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | |
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | |
[override]
Entfernt alle Elemente aus dem Menü. | ContextMenu | ||
![]() |
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | |
![]() |
Entfernt das angegebene Menüelement. | NativeMenu | |
[override]
Bewirkt, dass das Menüelement am angegebenen Index entfernt und zurückgegeben wird. | ContextMenu | ||
![]() |
Verschiebt ein Menüelement an die angegebene Position. | NativeMenu | |
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | |
![]() |
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | |
![]() |
Gibt das angegebene Objekt als String zurück. | Object | |
![]() |
Gibt den Grundwert des angegebenen Objekts zurück. | Object | |
![]() |
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher | |
| Ereignis | Übersicht | Definiert von | ||
|---|---|---|---|---|
![]() | [broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | ||
![]() | [broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | ||
![]() | Wird unmittelbar vor der Anzeige des Menüs von diesem NativeMenu-Objekt abgesetzt. | NativeMenu | ||
| Wird ausgelöst, wenn ein Benutzer ein Kontextmenü zum ersten Mal erzeugt, jedoch bevor der Inhalt des Kontextmenüs angezeigt wird. | ContextMenu | |||
![]() | Wird vom NativeMenu-Objekt abgesetzt, wenn eine Tastenentsprechung gedrückt wird, und unmittelbar vor dem Einblenden des Menüs. | NativeMenu | ||
![]() | Wird von diesem NativeMenu-Objekt ausgelöst, wenn eines seiner Menüelemente oder ein Element in einem seiner nachfolgenden Untermenüs ausgewählt wird. | NativeMenu | ||
builtInItems | Eigenschaft |
builtInItems:ContextMenuBuiltInItems| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Eine Instanz der ContextMenuBuiltInItems-Klasse mit den folgenden Eigenschaften: 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.
Hinweis: In AIR besitzen Kontextmenüs keine integrierten Elemente.
Implementierung
public function get builtInItems():ContextMenuBuiltInItems public function set builtInItems(value:ContextMenuBuiltInItems):voidVerwandte API-Elemente
clipboardItems | Eigenschaft |
clipboardItems:ContextMenuClipboardItems| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Eine Instanz der ContextMenuClipboardItems-Klasse mit den folgenden Eigenschaften: cut, copy, paste, delete, selectAll. Wenn eine dieser Eigenschaften auf false gesetzt wird, wird das entsprechende Element im Zwischenablagemenü deaktiviert.
Implementierung
public function get clipboardItems():ContextMenuClipboardItems public function set clipboardItems(value:ContextMenuClipboardItems):voidVerwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
clipboardItems-Eigenschaft des ContextMenu-Objekts. Erstellen Sie ein ContextMenu und setzen Sie seine clipboardMenu-Eigenschaft auf true. Fügen Sie eine Ereignisprozedur für das MENU_SELECT-Ereignis (in der Regel ein Rechtsklick) hinzu und weisen Sie das Menü einem Anzeigeobjekt zu. In diesem Fall ist das copy- und paste-Menü (Kopieren/Einfügen) aktiviert.
package {
import flash.ui.ContextMenu;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
public class ContextMenuClipboardItemsExample extends Sprite {
public function ContextMenuClipboardItemsExample() {
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.clipboardMenu = true;
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
var rc:Sprite = new Sprite();
rc.graphics.beginFill(0xDDDDDD);
rc.graphics.drawRect(0,0,100,30);
addChild(rc);
rc.contextMenu = myContextMenu;
}
function menuSelectHandler(event:ContextMenuEvent):void {
event.contextMenuOwner.contextMenu.clipboardItems.copy = true;
event.contextMenuOwner.contextMenu.clipboardItems.paste = true;
}
}
}
clipboardMenu | Eigenschaft |
clipboardMenu:Boolean| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Gibt an, ob das Zwischenablagemenü benutzt werden soll. Wenn dieser Wert true ist, bestimmt die clipboardItems-Eigenschaft, welche Elemente im Zwischenablagemenü aktiviert bzw. deaktiviert sind.
Wenn die link-Eigenschaft nicht Null ist, wird diese clipBoardMenu-Eigenschaft ignoriert.
Implementierung
public function get clipboardMenu():Boolean public function set clipboardMenu(value:Boolean):voidcustomItems | Eigenschaft |
customItems:Array| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, 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):voidVerwandte API-Elemente
isSupported | Eigenschaft |
isSupported:Boolean [schreibgeschützt] | Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Die isSupported-Eigenschaft hat den Wert true, wenn die ContextMenu-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false.
Implementierung
public static function get isSupported():Boolean items | Eigenschaft |
items:Array[override] | Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0 |
Das Array der benutzerdefinierten Elemente in diesem Menü.
Diese Eigenschaft bewirkt von der Funktion her das gleiche wie die customItems-Eigenschaft. Das Array wird in der Anzeigereihenfolge sortiert.
Implementierung
override public function get items():Array override public function set items(value:Array):voidlink | Eigenschaft |
link:URLRequest| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Der URLRequest des Links. Wenn diese Eigenschaft null ist, wird ein normales Kontextmenü angezeigt. Wenn diese Eigenschaft nicht Null ist, wird das Kontextmenü „Link“ angezeigt, und es wird die angegebene URL verwendet.
Wenn ein Link angegeben wurde, wird die clipboardMenu-Eigenschaft ignoriert.
Der Standardwert ist null.
Implementierung
public function get link():URLRequest public function set link(value:URLRequest):void numItems | Eigenschaft |
ContextMenu | () | Konstruktor |
public function ContextMenu()| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Erstellt ein ContextMenu-Objekt.
Verwandte API-Elemente
addItemAt | () | Methode |
override public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0 |
Fügt am Ende des Menüs ein Menüelement hinzu.
Beim Erstellen eines Kontextmenüs können Sie entweder NativeMenuItem- oder ContextMenuItem-Objekte hinzufügen. Es wird jedoch empfohlen, dass Sie in einem Kontextmenü nur einen Objekttyp verwenden, damit alle Menüelemente über dieselben Eigenschaften verfügen.
Parameter
item:NativeMenuItem — Das Element, das am Ende des Menüs hinzugefügt werden soll.
| |
index:int |
NativeMenuItem |
Auslöser
ArgumentError — Wenn ein item null ist.
| |
ArgumentError — Wenn ein item Mitglied eines anderen Menüs ist.
|
clone | () | Methode |
override public function clone():NativeMenu| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Erstellt eine Kopie des angegebenen ContextMenu-Objekts. Die Kopie übernimmt alle Eigenschaften des Originalmenüobjekts.
RückgabewerteNativeMenu — Ein ContextMenu-Objekt mit allen Eigenschaften des Originalmenüobjekts.
|
containsItem | () | Methode |
override public function containsItem(item:NativeMenuItem):Boolean| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0 |
Gibt an, ob dieses Menü das angegebene Menüelement enthält.
Parameter
item:NativeMenuItem — Das Element, das gesucht werden soll.
|
Boolean — Der Wert ist true, wenn sich item in diesem Menü befindet.
|
display | () | Methode |
override public function display(stage:Stage, stageX:Number, stageY:Number):void| Laufzeitversionen: | AIR 1.0 |
Blendet dieses Menü an der angegebenen Position ein.
Hinweis: In Flash Player wird diese Methode nicht unterstützt.
Parameter
stage:Stage — Das Stage-Objekt, für das dieses Menü angezeigt werden soll.
| |
stageX:Number — Die Anzahl horizontaler Pixel in Bezug auf den Ursprungspunkt der Bühne, auf der dieses Menü angezeigt werden soll.
| |
stageY:Number — Die Anzahl vertikaler Pixel in Bezug auf den Ursprungspunkt der Bühne, auf der dieses Menü angezeigt werden soll.
|
getItemAt | () | Methode |
override public function getItemAt(index:int):NativeMenuItem| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0 |
Ruft das Menüelement am angegebenen Index ab.
Parameter
index:int — Die Position (auf Basis von Null) des zurückzugebenden Elements.
|
NativeMenuItem — Das Element an der angegebenen Position im Menü.
|
Auslöser
RangeError — Wenn sich index außerhalb der Grenzen des items-Arrays des Menüs befindet.
|
getItemIndex | () | Methode |
override public function getItemIndex(item:NativeMenuItem):int| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0 |
Ruft die Position des angegebenen Elements ab.
Parameter
item:NativeMenuItem — Das zu suchende NativeMenuItem-Objekt.
|
int — Die (auf null basierende) Position des angegebenen Elements in diesem Menü oder -1, wenn das Element nicht in diesem Menü enthalten ist.
|
hideBuiltInItems | () | Methode |
public function hideBuiltInItems():void| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, 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.
Hinweis: In AIR besitzen Kontextmenüs keine integrierten Elemente. Wenn diese Methode aufgerufen wird, passiert nichts.
Verwandte API-Elemente
removeAllItems | () | Methode |
override public function removeAllItems():void| Laufzeitversionen: | AIR 1.0 |
Entfernt alle Elemente aus dem Menü.
removeItemAt | () | Methode |
override public function removeItemAt(index:int):NativeMenuItem| Laufzeitversionen: | AIR 1.0 |
Bewirkt, dass das Menüelement am angegebenen Index entfernt und zurückgegeben wird.
Parameter
index:int — Die (auf null basierende) Position des zu entfernenden Elements.
|
NativeMenuItem — Das entfernte NativeMenuItem-Objekt.
|
menuSelect | Ereignis |
flash.events.ContextMenuEventEigenschaft ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_SELECT| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | AIR 1.0, 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 Eigenschafttype eines menuSelect-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
contextMenuOwner | Das Anzeigelistenobjekt, dem das Menü zugeordnet ist. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
mouseTarget | Das Anzeigelistenobjekt, auf das der Benutzer mit rechts geklickt hat, um das Kontextmenü anzuzeigen. |
target | Das 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. |
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:
- Die Eigenschaft
myContextMenuwird deklariert und anschließend einem neuen ContextMenu-Objekt zugewiesen, und die EigenschaftredRectanglevom Typ „Sprite“ wird deklariert. - Die
removeDefaultItems()-Methode wird aufgerufen, bei der alle integrierten Kontextmenüelemente mit Ausnahme der Option zum Drucken entfernt werden. - Die
addCustomMenuItems()-Methode wird aufgerufen, bei der ein Menüelement mit der BezeichnungRed to BlackimdefaultItems-Array platziert wird, indem diepush()-Methode des Arrays verwendet wird. EinmenuItemSelect-Ereignis-Listener wird dem ContextMenuItem-Objekt hinzugefügt. Die verknüpfte Methode istmenuItemSelectHandler(). Bei dieser Methode werden einigetrace()-Anweisungen gedruckt, wenn auf das Kontextmenü zugegriffen und die OptionRed to Blackausgewählt wird. Darüber hinaus wird das rote Quadrat entfernt und durch ein schwarzes ersetzt. - Ein
menuSelect-Ereignis-Listener mit der verknüpften MethodemenuSelectHandler()wird hinzugefügt. Hiermit werden dreitrace()-Anweisungen gedruckt, wenn ein Element im Kontextmenü ausgewählt wird. - Durch
addChildren()wird anschließend ein rotes Quadrat gezeichnet und der Anzeigeliste hinzugefügt, in der dieses umgehend angezeigt wird. - Zum Schluss wird
myContextMenudem Kontextmenü des SpriteredRectanglezugewiesen, 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.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;
}
}
}
Tue Jun 12 2018, 10:04 AM Z
Vererbte öffentliche Eigenschaften ausblenden
Vererbte öffentliche Eigenschaften anzeigen