Режим элемента меню

По умолчанию нажатие кнопки означает, что все события, связанные с движением мыши и отпусканием ее левой клавиши, будут ассоциироваться только с данной кнопкой до тех пор, пока она не будет освобождена. Так, если вы нажмете кнопку и выведите указатель мыши за пределы ее активной зоны, то режим сменится на Over (она останется выделенной), а курсор продолжит отображаться в виде руки. Наведение указателя при этом на другую кнопку не будет сопровождаться сменой ее режима (равно как и не произойдет события onDragOver). Вообще, события остальных кнопок не будут иметь места до тех пор, пока данная не будет отпущена.

Тесная привязка происходящих событий к нажатой кнопке не всегда удобна. Например, вам необходимо создать раскрывающееся меню. Наиболее простой его вариант — это кнопка, при нажатии которой появляется клип с кнопками, изображающими элементы меню. Чтобы по особенностям своего использования данное меню совпадало с традиционным меню Windows, кнопки-элементы должны переходить в режим выделения при наведении на их указателя мыши. Кроме того, нужно знать, над какой из кнопок произошло отпускание клавиши мыши, — это определит сделанный пользователем выбор. Однако как решить эти задачи, если при нажатии одной кнопки, остальные становятся невосприимчивыми к событиям?

Во Flash, помимо стандартного, имеется и особый режим для кнопок, позволяющий с легкостью создавать меню — Track As Menu Item.


Задать его можно в специальном меню Инспектора Свойств кнопки. Второй, выбранный по умолчанию, пункт данного меню, Track As Button, отвечает за обычное поведение кнопок.

Для режима Track As Menu характерны следующие особенности:

• Если вы нажмете кнопку и выведете указатель за пределы ее активной области, то она вернется к состоянию Up (но это не будет сопровождаться событием onRelease). Вид самого указателя при этом сменится с очертания руки на стрелку.

• Если после нажатия одной кнопки навести указатель на другую (также использующую данный режим) кнопку, то она перейдет в состояние Down. Однако событие on Press при этом не произойдет.

• Если нажать левую клавишу мыши над одной кнопкой, а отпустить над другой, то произойдет событие onRelease второй кнопки, а не onReleaseOutside первой.

• Событие onDragOver происходит при появлении указателя мыши в активной зоне любой кнопки, работающей в режиме Track As Menu, вне записи мости от того, какая кнопка была нажата и была ли нажата вообще. Единственное условие — опущена должна быть левая клавиша мыши.

По сути, в данной ситуации событие onDragOver выполняет те же функции, что и onRolIOver в случае обычных кнопок.


То же можно сказать и о событии onDragOut (оно соответствует событию onRollOut).

Перейти в режим элемента меню можно и динамически. Для этого имеется специальное свойство trackAsMenu. Оно принимает булево значение: true — используется режим элемента меню, false — применяется стандартный режим.

По отношению к кнопкам свойство trackAsMenu используется редко, так как соответствующая настройка имеется среди параметров их Инспектора Свойств. Обычно данное свойство применяется, чтобы перевести и режим элемента меню клип, исполняющий роль кнопки. По умолчанию его значение равно false.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Клипы как кнопки
Отключение кнопок
События кнопок
Управление кнопками при помощи клавиатуры

Вернуться в раздел: Action Script / 11. Кнопки