Paket | flash.ui |
Klass | public final class ContextMenu |
Arv | ContextMenu NativeMenu EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Stöd för mobilwebbläsare: Den här klassen stöds inte i mobilwebbläsare.
Stöd för AIR-profiler: Den här funktionen stöds inte på mobilenheter eller enheter med AIR for TV. På sidan om stöd för AIR-profiler hittar du mer information om API-stöd för flera profiler.
Användare öppnar snabbmenyn genom att högerklicka (Windows och Linux) eller Control-klicka (Macintosh) i Flash Player. Du kan använda metoderna och egenskaperna i klassen ContextMenu för att lägga till egna menyalternativ, styra vilka inbyggda alternativ som visas på snabbmenyn (till exempel Zooma in och Skriv ut) eller skapa kopior av menyer. I AIR finns det inga inbyggda alternativ och ingen standardsnabbmeny.
I Flash Professional kan du koppla ett ContextMenu-objekt till ett specifikt knapp-, filmklipps- eller textfältsobjekt, eller till en hel filmnivå. Du använder egenskapen contextMenu
för klassen InteractiveObject för att göra detta.
I Flex och Flash Builder kan endast komponenter på översta nivån i programmet ha snabbmenyer. Om en DataGrid-kontroll exempelvis är underordnad en TabNavigator- eller VBox-behållare kan DataGrid-kontrollen inte ha någon egen snabbmeny.
Du lägger till nya alternativ i ett ContextMenu-objekt genom att först skapa ett ContextMenuItem-objekt och sedan lägga till det i arrayen ContextMenu.customItems
. Mer information om hur du skapar alternativ för snabbmenyer finns i beskrivningen av klassen ContextMenuItem.
Det finns tre typer av snabbmenyer i Flash Player: standardmenyn (som visas när användaren högerklickar på Flash Player), Redigera-menyn (som visas när användaren högerklickar på ett textfält som kan markeras eller redigeras) och en felmeny (som visas om en SWF-fil inte kan läsas in i Flash Player). Bara standardmenyn och Redigera-menyn kan ändras med klassen ContextMenu. Bara Redigera-menyn visas i AIR.
Anpassade menyalternativ visas alltid högst upp i snabbmenyn i Flash Player, ovanför alla synliga inbyggda menyalternativ. En avgränsare skiljer de inbyggda och anpassade menyalternativen från varandra. Det går inte att ta bort menyalternativet Inställningar från snabbmenyn. Menyalternativet Inställningar måste finnas i Flash så att användarna kan komma åt inställningarna för sekretess och lagring på sina datorer. Det går heller inte att ta bort menyalternativet Om. Alternativet måste finnas för att användarna ska kunna se vilken version av Flash Player de använder. (I AIR används inte de inbyggda Inställningar- och Om-menyalternativen.)
Du kan inte lägga till fler än 15 egna alternativ på en snabbmeny i Flash Player. I AIR finns det ingen uttrycklig gräns för antalet alternativ på en snabbmeny.
Du måste använda konstruktorn ContextMenu()
för att skapa ett ContextMenu-objekt innan du kan anropa dess metoder.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
builtInItems : ContextMenuBuiltInItems
En instans av ContextMenuBuiltInItems-klassen med följande egenskaper: forwardAndBack, loop, play, print, quality, rewind, save och zoom. | ContextMenu | ||
clipboardItems : ContextMenuClipboardItems
En instans av ContextMenuClipboardItems-klassen med följande egenskaper: cut, copy, paste, delete, selectAll. | ContextMenu | ||
clipboardMenu : Boolean
Indikerar om urklippsmenyn ska användas eller inte. | ContextMenu | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
customItems : Array
En array med ContextMenuItem-objekt. | ContextMenu | ||
isSupported : Boolean [statisk] [skrivskyddad]
Egenskapen isSupported är true om klassen ContextMenu stöds på den aktuella plattformen, och i annat fall är värdet false. | ContextMenu | ||
items : Array [åsidosätt]
Arrayen för egna alternativ på denna meny. | ContextMenu | ||
link : URLRequest
Länkens URLRequest. | ContextMenu | ||
numItems : int [åsidosätt] [skrivskyddad]
Antalet alternativ på denna meny. | ContextMenu | ||
parent : NativeMenu [skrivskyddad]
Den överordnade menyn. | NativeMenu |
Metod | Definieras med | ||
---|---|---|---|
Skapar ett ContextMenu-objekt. | ContextMenu | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Lägger till ett menyobjekt längst ned på menyn. | NativeMenu | ||
[åsidosätt]
Lägger till ett menyobjekt längst ned på menyn. | ContextMenu | ||
Lägger till en undermeny till menyn genom att infoga ett nytt menyobjekt. | NativeMenu | ||
Lägger till en undermeny genom att infoga ett nytt menyobjekt vid den angivna positionen. | NativeMenu | ||
[åsidosätt]
Skapar en kopia av det angivna ContextMenu-objektet. | ContextMenu | ||
[åsidosätt]
Rapporterar om denna meny innehåller det angivna menyobjektet. | ContextMenu | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
[åsidosätt]
Poppar upp denna meny vid den angivna placeringen. | ContextMenu | ||
[åsidosätt]
Hämtar meyobjektet vid det angivna indexvärdet. | ContextMenu | ||
Hämtar menyobjektet med det angivna namnet. | NativeMenu | ||
[åsidosätt]
Hämtar positionen för det angivna objektet. | ContextMenu | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Döljer alla inbyggda menyalternativ (utom Inställningar) i det angivna ContextMenu-objektet. | ContextMenu | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
[åsidosätt]
Tar bort alla objekt från menyn. | ContextMenu | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Tar bort det angivna menyobjektet. | NativeMenu | ||
[åsidosätt]
Tar bort och returnerar menyobjektet vid det angivna indexvärdet. | ContextMenu | ||
Flyttar ett menyobjekt till den angivna positionen. | NativeMenu | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher | |||
Skickas av detta NativeWindow-objekt omedelbart innan menyn visas. | NativeMenu | |||
Skickas när användaren först genererar en snabbmeny men innan innehållet i snabbmenyn visas. | ContextMenu | |||
Skickas av NativeMenu-objektet när en tangentmotsvarighet trycks ned och omedelbart innan menyn visas. | NativeMenu | |||
Skickas av detta NativeMenu-objekt när ett av dess menyobjekt eller objekt i en av dess underordnade undermenyer markeras. | NativeMenu |
builtInItems | egenskap |
builtInItems:ContextMenuBuiltInItems
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
En instans av ContextMenuBuiltInItems-klassen med följande egenskaper: forwardAndBack
, loop
, play
, print
, quality
, rewind
, save
och zoom
. Om egenskaperna ställs in på false
tas motsvarande menyalternativ bort från det angivna ContextMenu-objektet. Egenskaperna är uppräkningsbara och inställda på true
som standard.
Obs! I AIR finns det inga inbyggda alternativ för snabbmenyer.
Implementering
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
Relaterade API-element
clipboardItems | egenskap |
clipboardItems:ContextMenuClipboardItems
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
En instans av ContextMenuClipboardItems-klassen med följande egenskaper: cut
, copy
, paste
, delete
, selectAll
. Om en av dessa egenskaper ställs in på false
inaktiveras motsvarande alternativ på urklippsmenyn.
Implementering
public function get clipboardItems():ContextMenuClipboardItems
public function set clipboardItems(value:ContextMenuClipboardItems):void
Relaterade API-element
Exempel ( Så här använder du exemplet )
clipboardItems
-egenskapen i ContextMenu
-objektet används. Skapa en ContextMenu
och ställ in dess clipboardMenu
-egenskap på true
. Lägg till en händelsehanterare för MENU_SELECT
-händelsen (vanligtvis högerklick) och tilldela menyn till ett visningsobjekt. I detta fall är menyerna copy
och paste
aktiverade.
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 | egenskap |
clipboardMenu:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Indikerar om urklippsmenyn ska användas eller inte. Om detta värde är true
avgör egenskapen clipboardItems
vilka alternativ som är aktiverade eller inaktiverade på urklippsmenyn.
Om link
-egenskapen inte är null ignoreras den här clipBoardMenu
-egenskapen.
Implementering
public function get clipboardMenu():Boolean
public function set clipboardMenu(value:Boolean):void
customItems | egenskap |
customItems:Array
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
En array med ContextMenuItem-objekt. Varje objekt i arrayen motsvarar ett snabbmenyalternativ som du har definierat. Använd egenskapen för att lägga till, ta bort eller ändra dessa anpassade menyalternativ.
Lägg till nya menyalternativ genom att först skapa ett ContextMenuItem-objekt och sedan lägga till det i arrayen customItems
(till exempel genom att använda Array.push()
). Mer information om hur du skapar menyalternativ finns i beskrivningen av klassen ContextMenuItem.
Implementering
public function get customItems():Array
public function set customItems(value:Array):void
Relaterade API-element
isSupported | egenskap |
isSupported:Boolean
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Egenskapen isSupported
är true
om klassen ContextMenu stöds på den aktuella plattformen, och i annat fall är värdet false
.
Implementering
public static function get isSupported():Boolean
items | egenskap |
items:Array
[åsidosätt] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Arrayen för egna alternativ på denna meny.
Att använda den här egenskapen motsvarar att använda egenskapen customItems
. Arrayen sorteras i visningsordning.
Implementering
override public function get items():Array
override public function set items(value:Array):void
link | egenskap |
link:URLRequest
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Länkens URLRequest
. Om denna egenskap är null
visas en normal snabbmeny. Om denna egenskap inte är null
visas länksnabbmenyn, och den används på den angivna URL-adressen.
Om en link
anges ignoreras clipboardMenu
-egenskapen.
Standardvärdet är null
.
Implementering
public function get link():URLRequest
public function set link(value:URLRequest):void
numItems | egenskap |
ContextMenu | () | Konstruktor |
public function ContextMenu()
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Skapar ett ContextMenu-objekt.
Relaterade API-element
addItemAt | () | metod |
override public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Lägger till ett menyobjekt längst ned på menyn.
När du skapar en snabbmeny kan du lägga till NativeMenuItem- eller ContextMenuItem-objekt. Du bör emellertid bara använda en typ av objekt på en snabbmeny så att alla objekt på menyn har samma egenskaper.
Parametrar
item:NativeMenuItem — Alternativet som ska läggas till längst ned på menyn.
| |
index:int |
NativeMenuItem |
Utlöser
ArgumentError — Om item är null .
| |
ArgumentError — Om item ingår på en annan meny.
|
clone | () | metod |
override public function clone():NativeMenu
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Skapar en kopia av det angivna ContextMenu-objektet. Kopian ärver det ursprungliga menyobjektets alla egenskaper.
ReturnerarNativeMenu — Ett ContextMenu-objekt med det ursprungliga menyobjektets alla egenskaper.
|
containsItem | () | metod |
override public function containsItem(item:NativeMenuItem):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Rapporterar om denna meny innehåller det angivna menyobjektet.
Parametrar
item:NativeMenuItem — Alternativet som ska slås upp.
|
Boolean — true om item finns på den här menyn.
|
display | () | metod |
override public function display(stage:Stage, stageX:Number, stageY:Number):void
Körningsmiljöversioner: | AIR 1.0 |
Poppar upp denna meny vid den angivna placeringen.
Obs! Den här metoden stöds inte i Flash Player.
Parametrar
stage:Stage — Stage-objektet där denna meny ska visas.
| |
stageX:Number — Antal pixlar vågrätt, i förhållande till scenens ursprungsläge där den här menyn ska visas.
| |
stageY:Number — Antal pixlar lodrätt, i förhållande till scenens ursprungsläge den här menyn ska visas.
|
getItemAt | () | metod |
override public function getItemAt(index:int):NativeMenuItem
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Hämtar meyobjektet vid det angivna indexvärdet.
Parametrar
index:int — Den (nollbaserade) positionen för objektet som ska returneras.
|
NativeMenuItem — Alternativet vid den angivna positionen på menyn.
|
Utlöser
RangeError — Om index ligger utanför gränsen för menyns items -array.
|
getItemIndex | () | metod |
override public function getItemIndex(item:NativeMenuItem):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Hämtar positionen för det angivna objektet.
Parametrar
item:NativeMenuItem — Det NativeMenuItem-objekt som ska slås upp.
|
int — Den (nollbaserade) positionen för det angivna objektet på den här menyn eller -1 , om objektet inte finns på den här menyn.
|
hideBuiltInItems | () | metod |
public function hideBuiltInItems():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Döljer alla inbyggda menyalternativ (utom Inställningar) i det angivna ContextMenu-objektet. Om felsökningsversionen av Flash Player körs, visas menyalternativet Felsökning, men det är nedtonat för SWF-filer som inte har fjärrfelsökning aktiverad.
Metoden döljer bara menyalternativ som visas på standardsnabbmenyn. Alternativ som visas på Redigera-menyn och felmenyn påverkas inte.
Metoden fungerar genom att alla booleska medlemmar i my_cm
.builtInItems
ställs in påfalse
. Du kan göra ett specifikt inbyggt alternativ synligt genom att ställa in motsvarande medlem i my_cm
.builtInItems
på true
Obs! I AIR finns det inga inbyggda alternativ för snabbmenyer. Att anropa den här metoden har ingen effekt.
Relaterade API-element
removeAllItems | () | metod |
override public function removeAllItems():void
Körningsmiljöversioner: | AIR 1.0 |
Tar bort alla objekt från menyn.
removeItemAt | () | metod |
override public function removeItemAt(index:int):NativeMenuItem
Körningsmiljöversioner: | AIR 1.0 |
Tar bort och returnerar menyobjektet vid det angivna indexvärdet.
Parametrar
index:int — Den (nollbaserade) positionen för objektet som ska tas bort.
|
NativeMenuItem — NativeMenuItem-objektet som har tagits bort.
|
menuSelect | Händelse |
flash.events.ContextMenuEvent
egenskap ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_SELECT
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Skickas när användaren först genererar en snabbmeny men innan innehållet i snabbmenyn visas. På det sättet kan programmet ändra uppsättningen med snabbmenyalternativ innan menyn visas. Användaren genererar snabbmenyn genom att högerklicka på pekenheten.
Definierar värdet för ettmenuSelect
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
contextMenuOwner | Visningslisteobjektet som menyn är kopplad till. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
mouseTarget | Visningslisteobjektet som användaren högerklickade på för att visa snabbmenyn. |
target | Det ContextMenu-objekt som kommer att visas. Målet är inte alltid det objekt i visningslistan som har registrerat händelseavlyssnaren. Använd egenskapen currentTarget om du vill komma åt det objekt i visningslistan som bearbetar händelsen. |
ContextMenuExample
-klassen för att ta bort standardalternativen på snabbmenyn från scenen och lägga till ett nytt menyalternativ, som när användaren klickar på det ändrar färg på en fyrkant på scenen. Detta visas i följande steg:
- En
myContextMenu
-egenskap deklareras och kopplas sedan till ett nytt ContextMenu-objekt och enredRectangle
-egenskap av typen Sprite deklareras. - Metoden
removeDefaultItems()
anropas och alla inbyggda snabbmenyalternativ tas bort utom Skriv ut. - Metoden
addCustomMenuItems()
anropas vilket placerar ett menyalternativ med namnetRed to Black
idefaultItems
-arrayen med hjälp avpush()
-metoden. EnmenuItemSelect
-händelseavlyssnare läggs till ContextMenuItem-objektet och den kopplade metoden anropasmenuItemSelectHandler()
. Med den här metoden skrivs vissa programsatser ut med hjälp avtrace()
varje gång snabbmenyn öppnas ochRed to Black
markeras. Den röda fyrkanten tas också bort och ersätts av en svart. - En händelseavlyssnare av typen
menuSelect
läggs till, tillsammans med tillhörandemenuSelectHandler
-metod som skriver ut tre programsatser med hjälp avtrace()
varje gång ett alternativ i snabbmenyn öppnas. - Sedan ritar
addChildren()
en röd fyrkant och lägger till den i visningslistan där den visas direkt. - Slutligen kopplas
myContextMenu
till snabbmenyn iredRectangle
-spriten så att den anpassade snabbmenyn bara visas när muspekaren placeras över fyrkanten.
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, 01:40 PM Z