Packageflash.ui
Classepublic final class ContextMenu
HéritageContextMenu Inheritance EventDispatcher Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe ContextMenu permet de contrôler les éléments du menu contextuel de Flash Player. Les utilisateurs ouvrent le menu contextuel lorsqu’ils cliquent avec le bouton droit (Windows) ou en maintenant la touche Contrôle enfoncée (Macintosh) dans Flash Player. 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.

Vous pouvez lier un objet ContextMenu à un bouton, clip ou objet de champ de texte spécifique, ou encore à un niveau d'animation entier. Pour ce faire, il vous suffit d'utiliser la propriété menu des classes Button, MovieClip ou TextField. Pour plus d'informations sur la propriété menu, consultez Button.menu, MovieClip.menu et TextField.menu.

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, consultez l'entrée de la classe ContextMenuItem.

Flash Player propose trois types de menus contextuels : le menu standard (qui s'affiche lorsque vous cliquez avec le bouton droit de la souris dans Flash Player), le menu Edition (qui s'affiche lorsque vous cliquez avec le bouton droit de la souris 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.

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 ajouter plus de 15 éléments personnalisés à un menu contextuel. 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.

Vous devez utiliser le constructeur ContextMenu() pour créer un objet ContextMenu avant d'appeler ses méthodes.

Consulter les exemples

Voir aussi

Classe ContextMenuItem
flash.display.InteractiveObject.contextMenu


Propriétés publiques
 PropriétéDéfini par
  builtInItems : ContextMenuBuiltInItems
Objet doté des propriétés suivantes qui sont issues de la classe ContextMenuBuiltInItems : forwardAndBack, loop, play, print, quality, rewind, save et zoom.
ContextMenu
 Inheritedconstructor : 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
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
Crée un objet ContextMenu.
ContextMenu
 Inherited
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
  
Crée une copie de l'objet ContextMenu spécifié.
ContextMenu
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
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
 Inherited
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
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
 Inherited
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énements
 Evénement Synthèse Défini par
 Inherited Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif.EventDispatcher
 Inherited Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif.EventDispatcher
   Distribué lorsqu’un utilisateur génère initialement un menu contextuel, mais avant que le contenu du menu contextuel soit affiché.ContextMenu
Détails des propriétés
builtInItemspropriété
builtInItems:ContextMenuBuiltInItems  [lecture-écriture]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Objet doté des propriétés suivantes qui sont issues de la classe ContextMenuBuiltInItems : 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.


Implémentation
    public function get builtInItems():ContextMenuBuiltInItems
    public function set builtInItems(value:ContextMenuBuiltInItems):void

Voir aussi

customItemspropriété 
customItems:Array  [lecture-écriture]

Version du langage : ActionScript 3.0
Version du lecteur : 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, consultez l'entrée de la classe ContextMenuItem.


Implémentation
    public function get customItems():Array
    public function set customItems(value:Array):void

Voir aussi

Détails du constructeur
ContextMenu()Constructeur
public function ContextMenu()

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet ContextMenu.

Voir aussi

Détails des méthodes
clone()méthode
public function clone():ContextMenu

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée une copie de l'objet ContextMenu spécifié. La copie hérite de toutes les propriétés de l'objet de menu d’origine.

Valeur renvoyée
ContextMenu — Objet ContextMenu contenant toutes les propriétés de l'objet de menu d’origine.
hideBuiltInItems()méthode 
public function hideBuiltInItems():void

Version du langage : ActionScript 3.0
Version du lecteur : 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.

Voir aussi

Détails des événements
menuSelect Evénement
Type d'objet événement: flash.events.ContextMenuEvent
ContextMenuEvent.type property = flash.events.ContextMenuEvent.MENU_SELECT

Version du langage : ActionScript 3.0
Version du lecteur : 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 avec le 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
bubblesfalse
cancelablefalse ; il n’existe aucun comportement par défaut à annuler.
contextMenuOwnerObjet de la liste d'affichage auquel le menu est associé.
currentTargetL’objet qui traite activement l’objet Event avec un écouteur d’événements.
mouseTargetObjet de la liste d’affichage sur lequel l'utilisateur a cliqué du bouton droit de la souris pour afficher le menu contextuel.
targetObjet 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énements. Utilisez la propriété currentTarget pour accéder à l’objet de la liste d'affichage qui traite actuellement l'événement.
Exemples Utilisation des exemples
ContextMenuExample.as

L'exemple suivant utilise la classe 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 se déroule selon la procédure suivante :
  1. 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.
  2. La méthode removeDefaultItems() est appelée, ce qui supprime tous les éléments intégrés au menu contextuel sauf Print.
  3. 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 tableau defaultItems par le biais de la méthode push() de Array. Un écouteur d'événements menuItemSelect est ajouté à l'objet ContextMenuItem et la méthode associée est appelée menuItemSelectHandler(). Cette méthode imprime certaines instructions par le biais de trace() chaque fois que le menu contextuel est affiché et l'élément Red to Black (Remplacer le rouge par le noir) sélectionné. Parallèlement, le carré rouge est supprimé et remplacé par un carré noir.
  4. Un écouteur d'événements de type menuSelect est ajouté avec la méthode associée menuSelectHandler qui imprime trois instructions par le biais detrace() chaque fois qu'un élément du menu contextuel est ouvert.
  5. La méthode addChildren() dessine ensuite un carré rouge et l'ajoute à la liste d'affichage dans laquelle il apparaît immédiatement.
  6. 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.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;
        }
    }
}




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/ui/ContextMenu.html