Paquete | flash.ui |
Clase | public final class ContextMenu |
Herencia | ContextMenu NativeMenu EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Compatibilidad con navegador móvil: esta clase no se admite en navegadores móviles.
Compatibilidad con perfil de AIR: esta característica no se admite en dispositivos móviles o dispositivos de AIR para TV. Consulte Compatibilidad con perfil de AIR para obtener información sobre la compatibilidad de la API con varios perfiles.
En Flash Player, los usuarios abren el menú contextual haciendo clic con el botón derecho (Windows o Linux) o haciendo clic con la tecla Control presionada (Macintosh) en Flash Player. 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. En AIR, no hay opciones preinstaladas ni menú contextual estándar.
En Flash Professional, 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. Puede utilizar la propiedad contextMenu
de la clase InteractiveObject para ello.
En Flex o Flash Builder, solamente los componentes de nivel superior de la aplicación pueden tener menús contextuales. Por ejemplo, si un control DataGrid es un elemento secundario de un contenedor TabNavigator o VBox, el control no puede tener su propio menú contextual.
Para añadir nuevos elementos a un objeto ContextMenu, cree un objeto ContextMenuItem y, a continuación, añádalo al conjunto 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. Sólo aparece en AIR el menú Edición.
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. 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. (En AIR, las opciones de menú incorporadas Configuración y Acerca de no se utilizan.)
No es posible añadir más de 15 opciones personalizadas a un menú contextual de Flash Player. En AIR, no hay ningún límite impuesto sobre el número de opciones de un menú contextual.
Debe emplear el constructor ContextMenu()
para crear un objeto ContextMenu antes de llamar a sus métodos.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
builtInItems : ContextMenuBuiltInItems
Una instancia de la clase ContextMenuBuiltInItems con las siguientes propiedades: forwardAndBack, loop, play, print, quality, rewind, save y zoom. | ContextMenu | ||
clipboardItems : ContextMenuClipboardItems
Una instancia de la clase ContextMenuClipboardItems con las siguientes propiedades: cut, copy, paste, delete, selectAll. | ContextMenu | ||
clipboardMenu : Boolean
Especifica si se debe utilizar o no el menú del portapapeles. | ContextMenu | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
customItems : Array
Un conjunto de objetos ContextMenuItem. | ContextMenu | ||
isSupported : Boolean [estática] [solo lectura]
La propiedad isSupported se establece en true si la clase ContextMenu se admite en la plataforma actual; en caso contrario, se establece en false. | ContextMenu | ||
items : Array [override]
Conjunto de elementos personalizados de este menú. | ContextMenu | ||
link : URLRequest
Objeto URLRequest del vínculo. | ContextMenu | ||
numItems : int [override] [solo lectura]
Número de elementos en este menú. | ContextMenu | ||
parent : NativeMenu [solo lectura]
Menú principal. | NativeMenu |
Método | Definido por | ||
---|---|---|---|
Crea un objeto ContextMenu. | ContextMenu | ||
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 | ||
Añade un elemento de menú al final de un menú. | NativeMenu | ||
[override]
Añade un elemento de menú al final de un menú. | ContextMenu | ||
Añade un submenú al menú insertando un elemento de menú. | NativeMenu | ||
Añade un submenú al menú insertando un elemento de menú en la posición especificada. | NativeMenu | ||
[override]
Crea una copia del objeto ContextMenu. | ContextMenu | ||
[override]
Indica si el menú contiene el elemento de menú especificado. | ContextMenu | ||
Distribuye un evento en el flujo del evento. | EventDispatcher | ||
[override]
El menú emerge en la ubicación especificada. | ContextMenu | ||
[override]
Obtiene el elemento de menú en el índice especificado. | ContextMenu | ||
Obtiene el elemento de menú con el nombre especificado. | NativeMenu | ||
[override]
Obtiene la posición del elemento especificado. | ContextMenu | ||
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. | EventDispatcher | ||
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 | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
[override]
Elimina todos los elementos de la lista. | ContextMenu | ||
Elimina un detector del objeto EventDispatcher. | EventDispatcher | ||
Elimina el elemento de menú especificado. | NativeMenu | ||
[override]
Elimina y devuelve el elemento de menú en el índice especificado. | ContextMenu | ||
Mueve un elemento de menú a la posición especificada. | NativeMenu | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object | ||
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 |
Evento | Resumen | Definido por | ||
---|---|---|---|---|
[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. | EventDispatcher | |||
[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos. | EventDispatcher | |||
Se distribuye por el objeto NativeMenu inmediatamente antes de que se muestre el menú. | NativeMenu | |||
Se distribuye cuando el usuario genera por primera vez un menú contextual, pero antes de que se muestre su contenido. | ContextMenu | |||
Distribuido por el objeto NativeMenu cuando se presiona un equivalente de teclas inmediatamente antes de que se muestre el menú. | NativeMenu | |||
Distribuido por el objeto NativeMenu cuando se selecciona uno de sus elementos de menú o un elemento de sus submenús. | NativeMenu |
builtInItems | propiedad |
builtInItems:ContextMenuBuiltInItems
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Una instancia de la clase ContextMenuBuiltInItems con las siguientes propiedades: 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.
Nota: en AIR, los menús contextuales no incluyen opciones incorporadas.
Implementación
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
Elementos de API relacionados
clipboardItems | propiedad |
clipboardItems:ContextMenuClipboardItems
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Una instancia de la clase ContextMenuClipboardItems con las siguientes propiedades: cut
, copy
, paste
, delete
, selectAll
. Si establece una de estas propiedades como false
, se desactiva el elemento correspondiente del menú del portapapeles.
Implementación
public function get clipboardItems():ContextMenuClipboardItems
public function set clipboardItems(value:ContextMenuClipboardItems):void
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
clipboardItems
del objeto ContextMenu
. Cree un ContextMenu
y defina su propiedad clipboardMenu
como true
. Agregue un controlador de eventos para el evento MENU_SELECT
(generalmente, haciendo clic con el botón derecho) y asigne el menú a un objeto de visualización. En este caso, aparecen habilitados los menús copy
y paste
.
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 | propiedad |
clipboardMenu:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Especifica si se debe utilizar o no el menú del portapapeles. Si este valor es true
, la propiedad clipboardItems
determina qué elementos se activan y se desactivan en el menú del portapapeles.
Si la propiedad link
no es null, se omite esta propiedad clipBoardMenu
.
Implementación
public function get clipboardMenu():Boolean
public function set clipboardMenu(value:Boolean):void
customItems | propiedad |
customItems:Array
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Un conjunto de objetos ContextMenuItem. Cada objeto del conjunto 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 al conjunto 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
Elementos de API relacionados
isSupported | propiedad |
isSupported:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
La propiedad isSupported
se establece en true
si la clase ContextMenu se admite en la plataforma actual; en caso contrario, se establece en false
.
Implementación
public static function get isSupported():Boolean
items | propiedad |
items:Array
[override] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0 |
Conjunto de elementos personalizados de este menú.
Utilizar esta propiedad equivale a utilizar la propiedad customItems
. El conjunto se ordena según su orden de visualización.
Implementación
override public function get items():Array
override public function set items(value:Array):void
link | propiedad |
link:URLRequest
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Objeto URLRequest
del vínculo. Si esta propiedad es null
, se muestra un menú contextual normal. Si esta propiedad no es null
, se muestra el vínculo del menú contextual y se activa la dirección URL especificada.
Si se especifica una propiedad link
, la propiedad clipboardMenu
se omite.
El valor predeterminado es null
.
Implementación
public function get link():URLRequest
public function set link(value:URLRequest):void
numItems | propiedad |
ContextMenu | () | Información sobre |
public function ContextMenu()
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Crea un objeto ContextMenu.
Elementos de API relacionados
addItemAt | () | método |
override public function addItemAt(item:NativeMenuItem, index:int):NativeMenuItem
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0 |
Añade un elemento de menú al final de un menú.
Cuando se crea un menú contextual, es posible añadir objetos NativeMenuItem o ContextMenuItem. Sin embargo, se recomienda utilizar sólo un tipo de objeto en un menú contextual para que todos los elementos del menú tengan las mismas propiedades.
Parámetros
item:NativeMenuItem — El elemento que se va a añadir al final del menú.
| |
index:int |
NativeMenuItem |
Emite
ArgumentError — Si item es null .
| |
ArgumentError — Si item forma parte de otro menú.
|
clone | () | método |
override public function clone():NativeMenu
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Crea una copia del objeto ContextMenu. La copia hereda todas las propiedades del objeto de menú original.
Valor devueltoNativeMenu — Un objeto ContextMenu con todas las propiedades del objeto de menú original.
|
containsItem | () | método |
override public function containsItem(item:NativeMenuItem):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0 |
Indica si el menú contiene el elemento de menú especificado.
Parámetros
item:NativeMenuItem — El elemento que se busca.
|
Boolean — true si item se encuentra en el menú.
|
display | () | método |
override public function display(stage:Stage, stageX:Number, stageY:Number):void
Versiones de motor de ejecución: | AIR 1.0 |
El menú emerge en la ubicación especificada.
Nota: este método no se admite en Flash Player.
Parámetros
stage:Stage — El objeto Stage en el que se muestra este menú.
| |
stageX:Number — El número de píxeles horizontales, relativos al origen de stage en el que se muestra este menú.
| |
stageY:Number — El número de píxeles verticales, relativos al origen de stage en el que se muestra este menú.
|
getItemAt | () | método |
override public function getItemAt(index:int):NativeMenuItem
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0 |
Obtiene el elemento de menú en el índice especificado.
Parámetros
index:int — Posición (basada en cero) del elemento que se va a devolver.
|
NativeMenuItem — El elemento en la posición especificada del menú.
|
Emite
RangeError — Si index se encuentra fuera de los límites del conjunto items del menú.
|
getItemIndex | () | método |
override public function getItemIndex(item:NativeMenuItem):int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0 |
Obtiene la posición del elemento especificado.
Parámetros
item:NativeMenuItem — Objeto NativeMenuItem que se busca.
|
int — Posición (basada en cero) del elemento especificado en el menú o -1 si el elemento no está en el menú.
|
hideBuiltInItems | () | método |
public function hideBuiltInItems():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, 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
.
Nota: en AIR, los menús contextuales no incluyen opciones incorporadas. Llamar a este método no produce ningún efecto.
Elementos de API relacionados
removeAllItems | () | método |
override public function removeAllItems():void
Versiones de motor de ejecución: | AIR 1.0 |
Elimina todos los elementos de la lista.
removeItemAt | () | método |
override public function removeItemAt(index:int):NativeMenuItem
Versiones de motor de ejecución: | AIR 1.0 |
Elimina y devuelve el elemento de menú en el índice especificado.
Parámetros
index:int — Posición (basada en cero) del elemento que se va a eliminar.
|
NativeMenuItem — Objeto NativeMenuItem eliminado.
|
menuSelect | Evento |
flash.events.ContextMenuEvent
propiedad ContextMenuEvent.type =
flash.events.ContextMenuEvent.MENU_SELECT
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, 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 propiedadtype
de un objeto de evento menuSelect
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
contextMenuOwner | El objeto de la lista de visualización al que se asocia el menú. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
mouseTarget | El objeto de la lista de visualización en el que el usuario hace clic con el botón derecho para mostrar el menú contextual. |
target | El 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. |
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:
- Se declara una propiedad
myContextMenu
y, a continuación, se asigna a un objeto ContextMenu nuevo y se declara una propiedadredRectangle
de tipo Sprite. - Se llama al método
removeDefaultItems()
, que elimina todos los elementos incorporados en el menú contextual salvo Print. - Se llama al método
addCustomMenuItems()
, que coloca el elemento de menú de selección de menúRed to Black
en el conjuntodefaultItems
a través del métodopush()
de la clase Array. Se añade un detector de eventosmenuItemSelect
al objeto ContextMenuItem y se llama al método asociadomenuItemSelectHandler()
. Este método imprime determinadas sentencias mediantetrace()
siempre que se accede al menú contextual y se seleccionaRed to Black
. Asimismo, se elimina el cuadrado de color rojo y se sustituye por uno de color negro. - Se añade un detector de eventos de tipo
menuSelect
, junto con el método asociadomenuSelectHandler
, que simplemente imprime tres sentencias a través detrace()
siempre que se abre un elemento del menú contextual. - A continuación,
addChildren()
dibuja un cuadrado de color rojo y lo añade a la lista de visualización, donde aparece inmediatamente. - Por último,
myContextMenu
se asigna al menú contextual del elemento spriteredRectangle
, 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.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, 02:12 PM Z