Paqueteflash.ui
Clasepublic final class ContextMenu
HerenciaContextMenu Inheritance EventDispatcher Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase ContextMenu permite controlar los elementos del menú contextual de Flash Player. Los usuarios abren el menú contextual al hacer clic en Flash Player con el botón derecho (Windows) o con la tecla Control presionada (Macintosh). Puede utilizar los métodos y las propiedades de la clase ContextMenu para añadir elementos de menú personalizados, controlar la visualización de los elementos del menú contextual incorporados (por ejemplo, Acercar e Imprimir) o crear copias de menús.

Puede asociar un objeto ContextMenu a un botón, un clip de película u objeto de campo de texto específico, o bien a todo un nivel de una película. Para ello, deberá utilizar la propiedad menu de las clases Button, MovieClip o TextField. Para más información sobre la propiedad menu, consulte Button.menu, MovieClip.menu y TextField.menu.

Para añadir nuevos elementos a un objeto ContextMenu, cree un objeto ContextMenuItem y, a continuación, añádalo a la matriz ContextMenu.customItems. Para más información sobre la creación de elementos de menús contextuales, consulte la entrada de la clase ContextMenuItem.

Flash Player dispone de tres tipos de menús contextuales: el menú estándar (que aparece al hacer clic con el botón derecho del ratón en Flash Player), el menú de edición (que aparece al hacer clic con el botón derecho del ratón en un campo de texto seleccionable o editable) y un menú de error (que aparece cuando un archivo SWF no logra cargarse en Flash Player.) Sólo los menús estándar y de edición pueden modificarse con la clase ContextMenu.

Los elementos de menú personalizados siempre aparecen en la parte superior del menú contextual de Flash Player, por encima de los elementos de menú incorporados que estén visibles; una barra separadora permite distinguir los elementos de menú incorporados de los personalizados. Puede añadir un máximo de 15 elementos personalizados a un menú contextual. No es posible quitar el elemento de menú Configuración del menú contextual. El elemento de menú Configuración es necesario para que los usuarios de Flash puedan acceder a la configuración que afecta a la privacidad y al almacenamiento en sus equipos. El elemento de menú Acerca de tampoco se puede quitar, ya que es necesario para que los usuarios puedan conocer la versión de Flash Player que están utilizando.

Debe emplear el constructor ContextMenu() para crear un objeto ContextMenu antes de llamar a sus métodos.

Ver los ejemplos

Véase también

ContextMenuItem
flash.display.InteractiveObject.contextMenu


Propiedades públicas
 PropiedadDefinido por
  builtInItems : ContextMenuBuiltInItems
Un objeto que tiene las propiedades siguientes de la clase ContextMenuBuiltInItems: forwardAndBack, loop, play, print, quality, rewind, save y zoom.
ContextMenu
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  customItems : Array
Una matriz de objetos ContextMenuItem.
ContextMenu
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
Crea un objeto ContextMenu.
ContextMenu
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
  
Crea una copia del objeto ContextMenu especificado.
ContextMenu
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
  
Oculta todos los elementos de menú incorporados (salvo Configuración) del objeto ContextMenu especificado.
ContextMenu
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo.EventDispatcher
 Inherited Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo.EventDispatcher
   Se distribuye cuando el usuario genera por primera vez un menú contextual, pero antes de que se muestre su contenido.ContextMenu
Información sobre propiedades
builtInItemspropiedad
builtInItems:ContextMenuBuiltInItems  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Un objeto que tiene las propiedades siguientes de la clase ContextMenuBuiltInItems: forwardAndBack, loop, play, print, quality, rewind, save y zoom. La configuración de estas propiedades con el valor false quita los elementos de menú correspondientes del objeto ContextMenu especificado. Estas propiedades son enumerables y están configuradas con el valor true de manera predeterminada.


Implementación
    public function get builtInItems():ContextMenuBuiltInItems
    public function set builtInItems(value:ContextMenuBuiltInItems):void

Véase también

customItemspropiedad 
customItems:Array  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Una matriz de objetos ContextMenuItem. Cada objeto de la matriz representa un elemento del menú contextual que ha definido. Utilice esta propiedad para añadir, quitar o modificar estos elementos de menú personalizados.

Para añadir nuevos elementos al menú, cree un objeto ContextMenuItem y luego añádalo a la matriz customItems (por ejemplo, utilizando Array.push()). Para más información sobre la creación de elementos de menú, consulte la entrada de la clase ContextMenuItem.


Implementación
    public function get customItems():Array
    public function set customItems(value:Array):void

Véase también

Información sobre constructores
ContextMenu()constructor
public function ContextMenu()

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un objeto ContextMenu.

Véase también

Información sobre métodos
clone()método
public function clone():ContextMenu

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea una copia del objeto ContextMenu especificado. La copia hereda todas las propiedades del objeto de menú original.

Valor devuelto
ContextMenu — Un objeto ContextMenu que contiene todas las propiedades del objeto de menú original.
hideBuiltInItems()método 
public function hideBuiltInItems():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Oculta todos los elementos de menú incorporados (salvo Configuración) del objeto ContextMenu especificado. Si se está en ejecución la versión del depurador de Flash Player, se mostrará el elemento de menú Depuración, aunque éste estará atenuado para archivos SWF que no tengan activada la depuración remota.

Este método oculta sólo los elementos de menú que aparecen en el menú contextual estándar; no afecta a los elementos que aparecen en los menús de edición y de error.

Este método funciona configurando todos los miembros booleanos de my_cm.builtInItems como false. Puede seleccionar los elementos incorporados que deben estar visibles configurando su correspondiente miembro en my_cm.builtInItems como true.

Véase también

Información sobre eventos
menuSelect Evento
Tipo de objeto de evento: flash.events.ContextMenuEvent
ContextMenuEvent.type property = flash.events.ContextMenuEvent.MENU_SELECT

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye cuando el usuario genera por primera vez un menú contextual, pero antes de que se muestre su contenido. De este modo, el programa puede modificar la definición de los elementos del menú contextual antes de mostrarlo. El usuario genera el menú contextual al hacer clic con el botón derecho del dispositivo de señalización.

Define el valor de la propiedad type de un objeto de evento menuSelect.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
contextMenuOwnerEl objeto de la lista de visualización al que se asocia el menú.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
mouseTargetEl objeto de la lista de visualización en el que el usuario hace clic con el botón derecho para mostrar el menú contextual.
targetEl objeto ContextMenu que se va a mostrar. El destino no siempre es el objeto de la lista de visualización que registró el detector de eventos. Utilice la propiedad currentTarget para acceder al objeto de la lista de visualización que está procesando el evento actualmente.
Ejemplos Cómo utilizar los ejemplos
ContextMenuExample.as

En el ejemplo siguiente, se utiliza la clase ContextMenuExample para eliminar del escenario los elementos de menú contextual predeterminados y añadir un elemento nuevo, el cual, si se hace clic en él, cambia el color de un cuadrado en el escenario. Esto se consigue con los pasos siguientes:
  1. Se declara una propiedad myContextMenu y, a continuación, se asigna a un objeto ContextMenu nuevo y se declara una propiedad redRectangle de tipo Sprite.
  2. Se llama al método removeDefaultItems(), que elimina todos los elementos incorporados en el menú contextual salvo Print.
  3. Se llama al método addCustomMenuItems(), que coloca el elemento de menú de selección de menú Red to Black en la matriz defaultItems a través del método push() de la clase Array. Se añade un detector de eventos menuItemSelect al objeto ContextMenuItem y se llama al método asociado menuItemSelectHandler(). Este método imprime determinadas sentencias mediante trace() siempre que se accede al menú contextual y se selecciona Red to Black. Asimismo, se elimina el cuadrado de color rojo y se sustituye por uno de color negro.
  4. Se añade un detector de eventos de tipo menuSelect, junto con el método asociado menuSelectHandler, que simplemente imprime tres sentencias a través de trace() siempre que se abre un elemento del menú contextual.
  5. A continuación, addChildren() dibuja un cuadrado de color rojo y lo añade a la lista de visualización, donde aparece inmediatamente.
  6. Por último, myContextMenu se asigna al menú contextual del elemento sprite redRectangle, de modo que el menú contextual personalizado sólo aparezca cuando el puntero del ratón se encuentre sobre el cuadrado.
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;
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/ui/ContextMenu.html