Пакет | flash.ui |
Класс | public final class ContextMenu |
Наследование | ContextMenu ![]() ![]() |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Объект ContextMenu можно присоединить на уровне объекта к определенной кнопку, фрагменту ролика или текстовому полю, либо на уровне всего файла к ролику. Это можно сделать с помощью свойства menu
класса Button, MovieClip или TextField. Дополнительные сведения о свойстве menu
см. в разделах Button.menu, MovieClip.menu и TextField.menu.
Чтобы добавить новые элементы в объект ContextMenu, нужно создать объект ContextMenuItem, а затем добавить его в массив ContextMenu.customItems
. Дополнительные сведения о создании элементов контекстного меню см. в описании класса ContextMenuItem.
Проигрыватель Flash Player имеет три типа контекстного меню: стандартное меню (отображаемое при щелчке правой кнопкой в окне Flash Player), меню правки (отображаемое при щелчке правой кнопкой в текстовом поле, которое поддерживает выделение или редактирование) и меню ошибок (отображаемое при сбое загрузки SWF-файла в Flash Player). С помощью класса ContextMenu можно изменять только стандартное меню и меню правки.
Пользовательские элементы меню всегда показываются в начале контекстного меню проигрывателя Flash Player, над видимыми встроенными элементами. Разделительная полоса отделяет пользовательские элементы меню от встроенных. В контекстное меню можно добавить не более 15 пользовательских элементов. Из контекстного меню нельзя удалить элемент "Параметры". Этот элемент меню является обязательным в Flash, чтобы пользователи имели доступ к параметрам, затрагивающим их конфиденциальность и хранение данных на их компьютерах. Также нельзя удалять элемент меню "О программе", чтобы пользователи могли узнать номер используемой версии Flash Player.
Прежде чем вызывать эти методы, необходимо создать объект ContextMenu с помощью конструктора ContextMenu()
.
См. также
Свойство | Определено | ||
---|---|---|---|
builtInItems : ContextMenuBuiltInItems
Объект, имеющий следующие свойства класса ContextMenuBuiltInItems: forwardAndBack, loop, play, print, quality, rewind, save и zoom. | ContextMenu | ||
clipboardItems : ContextMenuClipboardItems
Объект, имеющий следующие свойства класса ContextMenuClipboardItems: cut, copy, paste, delete, selectAll. | ContextMenu | ||
clipboardMenu : Boolean
Определяет, должно ли использоваться меню буфера обмена. | ContextMenu | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
customItems : Array
Массив объектов ContextMenuItem. | ContextMenu | ||
link : URLRequest
Объект URLRequest ссылки. | ContextMenu | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object |
Метод | Определено | ||
---|---|---|---|
Создает объект ContextMenu. | ContextMenu | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
Создает копию заданного объекта ContextMenu. | ContextMenu | ||
![]() |
Передает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
Скрывает все встроенные элементы меню (кроме пункта меню "Параметры") в заданном объекте ContextMenu. | ContextMenu | ||
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
Отправляется после того как пользователь создает контекстное меню, но перед отображением содержимого этого меню. | ContextMenu |
builtInItems | свойство |
builtInItems:ContextMenuBuiltInItems
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Объект, имеющий следующие свойства класса ContextMenuBuiltInItems: forwardAndBack
, loop
, play
, print
, quality
, rewind
, save
и zoom
Если этим свойствам задано значение false
, из объекта ContextMenu удаляются соответствующие элементы меню. Это перечисляемые свойства, которым по умолчанию задается значение true
.
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
См. также
clipboardItems | свойство |
clipboardItems:ContextMenuClipboardItems
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Объект, имеющий следующие свойства класса ContextMenuClipboardItems: cut
, copy
, paste
, delete
, selectAll
. Если задать этим свойствам значение false
, отключаются соответствующие элементы в меню буфера обмена. Это перечисляемые свойства.
public function get clipboardItems():ContextMenuClipboardItems
public function set clipboardItems(value:ContextMenuClipboardItems):void
См. также
clipboardItems
объекта ContextMenu
. Создайте свойство ContextMenu
и задайте его свойству clipboardMenu
значение true
. Добавьте прослушиватель для события MENU_SELECT
(как правило, это щелчок правой кнопки мыши) и назначьте меню экранному объекту. В данном случае включены меню copy
и 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 | свойство |
clipboardMenu:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Определяет, должно ли использоваться меню буфера обмена. При значении true
свойство clipboardItems
будет определять, какие элементы меню буфера обмена будут включены, а какие — нет.
Если link
имеет ненулевое значение, это свойство игнорируется.
public function get clipboardMenu():Boolean
public function set clipboardMenu(value:Boolean):void
customItems | свойство |
customItems:Array
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Массив объектов ContextMenuItem. Каждый объект в массиве представляет определенный вами элемент контекстного меню. С помощью данного свойства можно добавлять, удалять или модифицировать эти пользовательские элементы меню.
Чтобы добавить новые элементы меню, нужно создать объект ContextMenuItem и затем добавить его в массив customItems
(например, с помощью метода Array.push()
). Дополнительные сведения о создании элементов меню см. в описании класса ContextMenuItem.
public function get customItems():Array
public function set customItems(value:Array):void
См. также
link | свойство |
link:URLRequest
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Объект URLRequest
ссылки. Если это свойство имеет значение null, отображается обычное контекстное меню. Если это свойство имеет ненулевое значение, отображается контекстное меню ссылки для указанного URL-адреса.
Если задано свойство link
, свойство clipboardMenu
игнорируется.
Значение по умолчанию — null
.
public function get link():URLRequest
public function set link(value:URLRequest):void
ContextMenu | () | Конструктор |
public function ContextMenu()
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект ContextMenu.
См. также
clone | () | метод |
public function clone():ContextMenu
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает копию заданного объекта ContextMenu. Копия наследует все свойства исходного объекта меню.
ВозвращаетContextMenu — Объект ContextMenu со всеми свойствами исходного объекта меню.
|
hideBuiltInItems | () | метод |
public function hideBuiltInItems():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Скрывает все встроенные элементы меню (кроме пункта меню "Параметры") в заданном объекте ContextMenu. Если работает отладочная версия проигрыватель Flash Player, отображается элемент меню "Отладка", хотя он неактивен для SWF-файлов с выключенной функцией удаленной отладки.
Этот метод использует только те элементы, которые появляются в стандартном меню, он не затрагивает элементы в меню правки или ошибки.
Этот метод работает, задавая всем логическим элементам в my_cm
.builtInItems
значение false
. Можно сделать встроенный элемент меню видимым в выборочном порядке, задав для соответствующего ему элемента в my_cm
.builtInItems
значение true
.
См. также
menuSelect | Событие |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent.MENU_SELECT
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется после того как пользователь создает контекстное меню, но перед отображением содержимого этого меню. Оно позволяет программе модифицировать набор элементов контекстного меню перед его отображением. Пользователь генерирует контекстное меню щелчком правой кнопки указывающего устройства.
Определяет значение свойстваtype
объекта события menuSelect
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
contextMenuOwner | Объект списка отображения, к которому присоединено меню. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
mouseTarget | Объект списка отображения, который пользователь щелкает правой кнопкой мыши для отображения контекстного меню. |
target | Объект ContextMenu, который сейчас будет отображаться. Цель не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget , чтобы обратиться к объекту в списке отображения, обрабатывающему событие в данный момент. |
ContextMenuExample
для удаления элементов контекстного меню по умолчанию из рабочей области и добавления нового элемента меню, при щелчке изменяющего цвет квадрата в рабочей области. Это можно сделать, выполнив следующие действия:
myContextMenu
, которое затем назначается новому объекту ContextMenu, и свойство redRectangle
(типа Sprite).removeDefaultItems()
, который удаляет все встроенные элементы контекстного меню, кроме "Печать".addCustomMenuItems()
, который помещает элемент меню Red to Black
(Из красного в черный) в массив defaultItems
с помощью метода push()
объекта Array. Добавляется прослушиватель событий menuItemSelect
для объекта ContextMenuItem и вызывается соответствующий метод menuItemSelectHandler()
. Этот метод печатает строки с помощью метода trace()
при вызове контекстного меню и выборе элемента Red to Black
. Также красный квадрат удаляется и заменяется черным.menuSelect
и связанный с ним метод menuSelectHandler
, который просто печатает три предложения с помощью метода trace()
при каждом выборе элемента контекстного меню.addChildren()
рисует красный квадрат и добавляет его в список отображения, после чего он сразу появляется на экране.myContextMenu
назначается контекстному меню спрайта redRectangle
, чтобы пользовательское контекстное меню отображалось, только когда указатель мыши находится над квадратом.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; } } }