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):void
Verwandte 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):void
Verwandte 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):void
customItems | 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):void
Verwandte 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):void
link | 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.ContextMenuEvent
Eigenschaft 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
myContextMenu
wird deklariert und anschließend einem neuen ContextMenu-Objekt zugewiesen, und die EigenschaftredRectangle
vom 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 Black
imdefaultItems
-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 Black
ausgewä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
myContextMenu
dem Kontextmenü des SpriteredRectangle
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.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