Правая кнопка мыши в AS3

В этой статье я расскажу как использовать правую кнопку мыши в своих flash-проектах.

А заодно убрать это ненужное меню по правой кнопке. :]

Так получается, что нативное (от native — родной) событие для правой кнопки мыши существует уже с версии 11.2, давайте попробуем его использовать.

Создаём новый проект, указываем версию выше 11.2, советую указать версию 12 или 13 (я поставил 13).

Замечание: если указать версию 14, то при запуске проекта будем ловить ошибку: [Fault] exception, information=TypeError: Error #2007: Parameter type must be non-null. В строке объявления слушателя события.

Вот как выглядят настройки проекта:

Настройка проекта

После этого события правой мыши начинают отображаться в автоподстановке:

Автоподстановка события правой кнопки мыши

Объявляем наше событие в инициализации и делаем обработчик:

Запускаем и правая кнопка успешно работает, показывая нам trace-сообщение.

Теперь давайте сделаем какое-нибудь действие по правой кнопке, чтобы было поинтереснее чем трейс и выглядело более практичнее.

Сделаем по нажатию левой кнопки — создание визуального объекта, а по правой — уничтожение.

Сначала сделаем класс для объекта VisObj, будем наследовать его от Sprite. В его конструкторе сделаем сразу создание графики квадратика со случайным цветом:

А так же обратите внимание на метод free(), по нему объект самоуничтожается удаляясь со своего парента. Его мы и будем вызывать по правой кнопке.

В главном классе у нас должно быть 2-е функции обработки кликов (левой и правой кнопок мыши) и создание квадратика я выделил в отдельную функцию addQuad(), для того, чтобы при запуске сразу создать 10 квадратиков в случайных местах:

Вот и все дела, можете попробовать сами:

 

Скачать исходники проекта.