Package | flash.ui |
Classe | public final class ContextMenu |
Héritage | ContextMenu NativeMenu EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Prise en charge du navigateur mobile : cette classe n’est pas prise en charge sur les navigateurs mobiles.
Prise en charge du profil AIR : cette fonctionnalité n’est pas prise en charge sur les périphériques mobiles ou les périphériques AIR pour TV. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.
Dans Flash Player, les utilisateurs ouvrent le menu contextuel en cliquant avec le bouton droit de la souris (Windows ou Linux) sur Flash Player ou en cliquant tout en appuyant sur la touche Contrôle (Macintosh). Vous pouvez utiliser les méthodes et les propriétés de la classe ContextMenu pour ajouter des éléments de menu personnalisés, contrôler l’affichage des éléments du menu contextuel intégrés (par exemple, Zoom avant et Imprimer) ou créer des copies de menus. Dans AIR, il n’existe aucun élément intégré ni aucun menu contextuel standard.
Dans Flash Professional, vous pouvez lier un objet ContextMenu à un bouton, clip ou objet de champ de texte spécifique, ou encore à un niveau d’animation entier. Utilisez la propriété contextMenu
de la classe InteractiveObject pour y parvenir.
Dans Flex ou Flash Builder, seuls les composants de niveau supérieur dans l’application peuvent être dotés de menus contextuels. Par exemple, si un contrôle DataGrid est l’enfant d’un conteneur TabNavigator ou VBox, il ne peut pas posséder son propre menu contextuel.
Pour ajouter de nouveaux éléments à un objet ContextMenu, vous créez un objet ContextMenuItem que vous ajoutez au tableau ContextMenu.customItems
. Pour plus d’informations sur la création d’éléments de menu contextuel, voir l’entrée de la classe ContextMenuItem.
Flash Player propose trois types de menus contextuels : le menu standard (qui s’affiche lorsque vous cliquez du bouton droit dans Flash Player), le menu Edition (qui s’affiche lorsque vous cliquez du bouton droit sur un champ de texte sélectionnable ou modifiable) et un menu d’erreur (qui s’affiche lorsque le chargement d’un fichier SWF dans Flash Player a échoué). Seuls les menus standard et Edition peuvent être modifiés par le biais de la classe ContextMenu. Dans AIR, seul le menu Edition apparaît.
Les éléments de menu personnalisés s’affichent toujours dans la partie supérieure du menu contextuel de Flash Player, au-dessus des éléments de menu intégrés visibles ; une barre de séparation permet de faire la distinction entre les éléments de menu intégrés et personnalisés. Vous ne pouvez pas supprimer l’élément de menu Paramètres du menu contextuel. L’élément de menu Paramètres est requis dans Flash de manière à ce que les utilisateurs puissent accéder aux paramètres liés à la confidentialité et à l’enregistrement des données sur leur ordinateur. De même, vous ne pouvez pas supprimer l’élément de menu A propos de, qui est indispensable pour renseigner les utilisateurs sur la version de Flash Player qu’ils utilisent (dans AIR, les éléments de menu intégrés Paramètres et A propos de ne sont pas utilisés).
Vous ne pouvez pas ajouter plus de 15 éléments personnalisés à un menu contextuel dans Flash Player. Dans AIR, aucune limite explicite sur le nombre d’éléments d’un menu contextuel n’est imposée.
Vous devez utiliser le constructeur ContextMenu()
pour créer un objet ContextMenu avant d’appeler ses méthodes.
Plus d’exemples
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
builtInItems : ContextMenuBuiltInItems
Une occurrence de la classe ContextMenuBuiltInItems dont les propriétés sont les suivantes : forwardAndBack, loop, play, print, quality, rewind, save et zoom. | ContextMenu | ||
clipboardItems : ContextMenuClipboardItems
Une occurrence de la classe ContextMenuClipboardItems dont les propriétés sont les suivantes : cut, copy, paste, delete, selectAll. | ContextMenu | ||
clipboardMenu : Boolean
Précise si le menu du presse-papiers doit être utilisé. | ContextMenu | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
customItems : Array
Tableau d’objets ContextMenuItem. | ContextMenu | ||
isSupported : Boolean [statique] [lecture seule]
La propriété isSupported est définie sur true si la classe ContextMenu est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. | ContextMenu | ||
items : Array [override]
Tableau des éléments personnalisés dans ce menu. | ContextMenu | ||
link : URLRequest
URLRequest du lien. | ContextMenu | ||
numItems : int [override] [lecture seule]
Nombre d’éléments dans ce menu. | ContextMenu | ||
parent : NativeMenu [lecture seule]
Le menu parent. | NativeMenu |
Méthode | Défini par | ||
---|---|---|---|
Crée un objet ContextMenu. | ContextMenu | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Ajoute un élément de menu en bas du menu. | NativeMenu | ||
[override]
Ajoute un élément de menu en bas du menu. | ContextMenu | ||
Ajoute un sous-menu au menu en insérant une nouvelle option de menu. | NativeMenu | ||
Ajoute un sous-menu au menu en insérant une nouvelle option de menu à la position spécifiée. | NativeMenu | ||
[override]
Crée une copie de l’objet ContextMenu. | ContextMenu | ||
[override]
Indique si ce menu contient l’option de menu spécifiée. | ContextMenu | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
[override]
Déroule ce menu à l’emplacement spécifié. | ContextMenu | ||
[override]
Obtient l’option de menu à l’index spécifié. | ContextMenu | ||
Obtient l’option de menu avec le nom spécifié. | NativeMenu | ||
[override]
Obtient la position de l’option spécifiée. | ContextMenu | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Masque tous les éléments de menu intégrés (à l’exception de Paramètres) dans l’objet ContextMenu spécifié. | ContextMenu | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
[override]
Supprime tous les éléments du menu. | ContextMenu | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Supprime l’élément de menu spécifié. | NativeMenu | ||
[override]
Supprime et renvoie l’option de menu à l’index spécifié. | ContextMenu | ||
Déplace une option de menu vers la position spécifiée. | NativeMenu | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
Evénement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher | |||
Distribué par cet objet NativeMenu immédiatement avant l’affichage du menu. | NativeMenu | |||
Distribué lorsqu’un utilisateur génère initialement un menu contextuel, mais avant que le contenu du menu contextuel soit affiché. | ContextMenu | |||
Distribué par l’objet NativeMenu lorsque l’utilisateur appuie sur un équivalent de touche et immédiatement avant l’affichage du menu. | NativeMenu | |||
Distribué par cet objet NativeMenu lorsque l’une de ses options de menu ou un élément dans l’un de ses sous-menus descendants est sélectionné. | NativeMenu |
builtInItems | propriété |
builtInItems:ContextMenuBuiltInItems
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Une occurrence de la classe ContextMenuBuiltInItems dont les propriétés sont les suivantes : forwardAndBack
, loop
, play
, print
, quality
, rewind
, save
et zoom
. La définition de ces propriétés sur false
supprime les éléments de menu correspondants dans l’objet ContextMenu spécifié. Ces propriétés sont énumérables et définies sur true
par défaut.
Remarque : dans AIR, les menus contextuels ne possèdent aucun élément intégré.
Implémentation
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
Eléments de l’API associés
clipboardItems | propriété |
clipboardItems:ContextMenuClipboardItems
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Une occurrence de la classe ContextMenuClipboardItems dont les propriétés sont les suivantes : cut
, copy
, paste
, delete
, selectAll
. Définir l’une de ces propriétés sur false
désactive l’élément correspondant dans le menu du presse-papiers.
Implémentation
public function get clipboardItems():ContextMenuClipboardItems
public function set clipboardItems(value:ContextMenuClipboardItems):void
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
clipboardItems
de l’objet ContextMenu
. Créez un objet ContextMenu
et définissez sa propriété clipboardMenu
sur true
. Ajoutez un gestionnaire pour l’événement MENU_SELECT
(généralement un clic droit) et affectez le menu à un objet d’affichage. Dans ce cas, les menus copy
et paste
sont activés.
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 | propriété |
clipboardMenu:Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Précise si le menu du presse-papiers doit être utilisé. Si cette valeur est true
, la propriété clipboardItems
détermine quels éléments sont affichés ou masqués dans le menu du presse-papiers.
Si la propriété link
n’est pas nulle, cette propriété clipBoardMenu
est ignorée.
Implémentation
public function get clipboardMenu():Boolean
public function set clipboardMenu(value:Boolean):void
customItems | propriété |
customItems:Array
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Tableau d’objets ContextMenuItem. Chaque objet du tableau représente un élément de menu contextuel que vous avez défini. Utilisez cette propriété pour ajouter, supprimer ou modifier ces éléments de menu personnalisés.
Pour ajouter de nouveaux éléments de menu, créez un objet ContextMenuItem, puis ajoutez-le au tableau customItems
(à l’aide de Array.push()
, par exemple). Pour plus d’informations sur la création d’éléments de menu, voir l’entrée de la classe ContextMenuItem.
Implémentation
public function get customItems():Array
public function set customItems(value:Array):void
Eléments de l’API associés
isSupported | propriété |
isSupported:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
La propriété isSupported
est définie sur true
si la classe ContextMenu est disponible sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false
.
Implémentation
public static function get isSupported():Boolean
items | propriété |
items:Array
[override] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Tableau des éléments personnalisés dans ce menu.
Utiliser cette propriété équivaut à utiliser la propriété customItems
. Le tableau est trié par ordre d’affichage.
Implémentation
override public function get items():Array
override public function set items(value:Array):void
link | propriété |
link:URLRequest
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
URLRequest
du lien. Si cette propriété est définie sur null
, un menu contextuel standard apparaît. Si cette propriété n’est pas définie sur null
, le menu contextuel du lien apparaît et agit sur l’url spécifiée.
Si un lien
est spécifié, la propriété clipboardMenu
est ignorée.
La valeur par défaut est null
.
Implémentation
public function get link():URLRequest
public function set link(value:URLRequest):void
numItems | propriété |
ContextMenu | () | Constructeur |
public function ContextMenu()
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Crée un objet ContextMenu.
Eléments de l’API associés
addItemAt | () | méthode |
override public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Ajoute un élément de menu en bas du menu.
Lors de la création d’un menu contextuel, vous pouvez ajouter des objets NativeMenuItem ou ContextMenuItem. Nous vous conseillons toutefois de n’utiliser qu’un seul type d’objet dans un menu contextuel afin que tous les éléments du menu possèdent les mêmes propriétés.
Paramètres
item:NativeMenuItem — L’élément à ajouter au bas du menu.
| |
index:int |
NativeMenuItem |
Valeur émise
ArgumentError — Si item est null .
| |
ArgumentError — Si item est membre d’un autre menu.
|
clone | () | méthode |
override public function clone():NativeMenu
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Crée une copie de l’objet ContextMenu. La copie hérite de toutes les propriétés de l’objet du menu d’origine.
Valeur renvoyéeNativeMenu — Objet ContextMenu avec toutes les propriétés de l’objet du menu d’origine.
|
containsItem | () | méthode |
override public function containsItem(item:NativeMenuItem):Boolean
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Indique si ce menu contient l’option de menu spécifiée.
Paramètres
item:NativeMenuItem — L’élément à rechercher.
|
Boolean — true si item est dans ce menu.
|
display | () | méthode |
override public function display(stage:Stage, stageX:Number, stageY:Number):void
Versions du moteur d’exécution: | AIR 1.0 |
Déroule ce menu à l’emplacement spécifié.
Remarque : Flash Player ne prend pas en charge cette méthode.
Paramètres
stage:Stage — L’objet Stage sur lequel afficher ce menu.
| |
stageX:Number — Nombre de pixels horizontaux, par rapport à l’origine de la scène, sur laquelle afficher ce menu.
| |
stageY:Number — Nombre de pixels verticaux, par rapport à l’origine de la scène, sur laquelle afficher ce menu.
|
getItemAt | () | méthode |
override public function getItemAt(index:int):NativeMenuItem
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Obtient l’option de menu à l’index spécifié.
Paramètres
index:int — Position (de base zéro) dans l’option à renvoyer.
|
NativeMenuItem — L’élément à la position spécifiée dans le menu.
|
Valeur émise
RangeError — Si index est situé hors des limites du tableau items du menu.
|
getItemIndex | () | méthode |
override public function getItemIndex(item:NativeMenuItem):int
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Obtient la position de l’option spécifiée.
Paramètres
item:NativeMenuItem — L’objet NativeMenuItem à rechercher.
|
int — Position (de base zéro) de l’élément spécifié dans ce menu ou -1 si l’élément ne se trouve pas dans ce menu.
|
hideBuiltInItems | () | méthode |
public function hideBuiltInItems():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Masque tous les éléments de menu intégrés (à l’exception de Paramètres) dans l’objet ContextMenu spécifié. Si la version de débogage de Flash Player s’exécute, l’élément de menu Débogage apparaît, bien qu’il soit grisé pour les fichiers SWF sur lesquels le débogage à distance n’est pas activé.
Cette méthode masque uniquement les éléments de menu qui s’affichent dans le menu contextuel standard ; elle n’affecte pas les éléments qui s’affichent dans les menus Edition ou d’erreur.
Cette méthode règle tous les membres booléens de my_cm
.builtInItems
sur false
. Vous pouvez rendre visible un élément intégré de façon sélective en réglant le membre correspondant dans my_cm
.builtInItems
sur true
.
Remarque : dans AIR, les menus contextuels ne possèdent aucun élément intégré. L’appel de cette méthode est sans effet.
Eléments de l’API associés
removeAllItems | () | méthode |
override public function removeAllItems():void
Versions du moteur d’exécution: | AIR 1.0 |
Supprime tous les éléments du menu.
removeItemAt | () | méthode |
override public function removeItemAt(index:int):NativeMenuItem
Versions du moteur d’exécution: | AIR 1.0 |
Supprime et renvoie l’option de menu à l’index spécifié.
Paramètres
index:int — Position (de base zéro) de l’élément à supprimer.
|
NativeMenuItem — Objet NativeMenuItem supprimé.
|
menuSelect | Evénement |
flash.events.ContextMenuEvent
propriété ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_SELECT
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9 |
Distribué lorsqu’un utilisateur génère initialement un menu contextuel, mais avant que le contenu du menu contextuel soit affiché. Votre programme peut ainsi modifier les éléments de menu avant d’afficher le menu. L’utilisateur génère le menu contextuel en cliquant du bouton droit du périphérique de pointage.
Définit la valeur de la propriététype
d’un objet événement menuSelect
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
contextMenuOwner | Objet de la liste d’affichage auquel le menu est associé. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
mouseTarget | Objet de la liste d’affichage sur lequel l’utilisateur a cliqué du bouton droit de la souris pour afficher le menu contextuel. |
target | Objet ContextMenu sur le point d’être affiché. La cible ne correspond pas toujours à l’objet de la liste d’affichage qui est associé à l’écouteur d’événement. Utilisez la propriété currentTarget pour accéder à l’objet de la liste d’affichage qui traite actuellement l’événement. |
ContextMenuExample
pour supprimer les éléments de menu contextuel par défaut de la scène et ajouter un nouvel élément de menu qui, s’il est cliqué, modifie la couleur d’un carré sur la scène. Cette opération s’accomplit de la façon suivante :
- Une propriété
myContextMenu
est déclarée, puis attribuée à un nouvel objet ContextMenu ; une propriétéredRectangle
de type Sprite est également déclarée. - La méthode
removeDefaultItems()
est appelée, ce qui supprime tous les éléments de menu contextuel intégrés sauf Print. - La méthode
addCustomMenuItems()
est appelée, ce qui a pour effet de placer un élément de menu appeléRed to Black
(Remplacer le rouge par le noir) dans le tableaudefaultItems
par le biais de la méthodepush()
de Array. Un écouteur d’événementsmenuItemSelect
est ajouté à l’objet ContextMenuItem et la méthode associée est appeléemenuItemSelectHandler()
. Cette méthode imprime certaines instructions par le biais detrace()
chaque fois que le menu contextuel est affiché et l’élémentRed to Black
(Remplacer le rouge par le noir) sélectionné. Parallèlement, le carré rouge est supprimé et remplacé par un carré noir. - Un écouteur d’événements de type
menuSelect
est ajouté avec la méthode associéemenuSelectHandler
qui imprime trois instructions par le biais detrace()
chaque fois qu’un élément du menu contextuel est ouvert. - La méthode
addChildren()
dessine ensuite un carré rouge et l’ajoute à la liste d’affichage dans laquelle il apparaît immédiatement. - Finalement, la propriété
myContextMenu
est attribuée au menu contextuel de l’icône animée (sprite)redRectangle
si bien que le menu contextuel personnalisé s’affiche uniquement lorsque le pointeur de la souris est positionné sur le carré.
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, 09:30 AM Z