Контекстное меню флеш-ролика

Флеш-ролики имеют такой обязательный элемент, как контекстное меню. Контекстное меню вызывается правым кликом мышки (ПКМ) по сцене флеш-ролика. Внешний вид контекстного меню, набор и количество пунктов в нём, зависит от версии флеш-плейера, а также от автора флеш-приложения. Так, установленный у меня сейчас флеш-плейер имеет по умолчанию следующее контекстное меню:

контекстное меню флеш-ролика

Разработчик флеш-приложения имеет возможность убрать некоторые стандартные пункты контекстного меню (но не все!), а также может добавить свои пункты в контекстное меню.

Итак, рассмотрим основные операции с контекстным меню флеш-ролика на ActionScript 2.0:

1.) Удаление стандартных пунктов контекстного меню флеш приложения.

Для данной операции необходимо на главной временной шкале прописать следующий код.

Код ActionScript 2.0

var menu = new ContextMenu(); menu.hideBuiltInItems();

После применения данного кода контекстное меню флеш-ролика приобрело следующий вид:

контекстное меню флеш-ролика

Как видно, ряд стандартных пунктов меню исчезло, но три пункта (учтите, их количество и названия могут различаться в разных флеш-плейерах) всё равно осталось:

- Параметры;

- Глобальные настройки;

- О программе...

Эти три перечисленные пункта являются обязательными и убрать их контекстного меню нельзя. Такое положение вещей оправданно, так как первые два пункта отвечают за действительно важные настройки флеш-плейера, а последний пункт, по сути, является рекламой от разработчиков.

Кстати, в AS 2.0 существует и ещё один способ убрать все необязательные пункты контекстного меню:

Stage.showMenu = false;

Данный способ работает также, как и предыдущий.

2.) Добавление новых пунктов в контекстное меню флеш-приложения.

Для добавления нового пункта в контекстное меню флеш-ролика допишем наш предыдущий код:

/* скрываем обязательные пункты меню */ var menu = new ContextMenu(); menu.hideBuiltInItems(); /* Добавляем новый пункт меню, который будет называться "автор приложения". При клике по данному пункту меню будет выполняться функция myfunc. */ var myitem = new ContextMenuItem("автор приложения", myfunc); /* Функция, которая будет выполняться при клике по нашему пункту меню, будет отправлять нас на сайт автора приложения. */ function myfunc(){ getURL("http://edapskov.ru"); } /* Добавляем наш новый пункт меню в массив, где хранятся все пункты контекстного меню данного флеш-ролика. */ menu.customItems.push(myitem);

В результате работы данного кода мы получаем следующий результат:

Таким же образом можно добавить и другие пользовательские пункты в контекстное меню. Ниже приведён пример добавления двух новых пунктов в контекстное меню.

var menu = new ContextMenu(); menu.hideBuiltInItems(); var myitem1 = new ContextMenuItem("автор приложения", myfunc1); function myfunc1(){ getURL("http://edapskov.ru"); } var myitem2 = new ContextMenuItem("Я в Vkontakte", myfunc2); function myfunc2(){ getURL("http://vk.com/edapskov"); } menu.customItems.push(myitem1,myitem2);

Работа с контекстным меню в ActionScript 3.0 довольно сильно напоминает описанную выше работу с контекстным меню в ActionScript 2.0. Далее кратко опишем основные манипуляции с контекстным меню в AS 3.0:

1.) Удаление стандартных пунктов меню.

В ActionScript 3.0 для этого тоже можно использовать два подхода. Или код вида:

var menu:ContextMenu = new ContextMenu(); menu.hideBuiltInItems(); this.contextMenu = menu;

или следующий код:

stage.showDefaultContextMenu = false;

2.) Добавление новых пунктов.

Для добавления новых пунктов в контекстное меню можно использовать код AS 3.0 примерно следующего вида:

/* Скрываем стандартные пункты меню. */ var menu:ContextMenu = new ContextMenu(); menu.hideBuiltInItems(); /* Создаём новый пункт контекстного меню. */ var menuItem:ContextMenuItem = new ContextMenuItem("автор приложения"); menuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,edapskov); function edapskov(event:ContextMenuEvent):void { navigateToURL(new URLRequest("http://edapskov.ru")); } /* Добавляем новый пункт в массив, в котором хранятся пункты контекстного меню. */ menu.customItems.push(menuItem); /* Добавляем данное контекстное меню к флеш-ролику (или к определённому объекту в списке отображения, если в этом есть необходимость). */ this.contextMenu = menu;

Примечания:

[!] Не стоит размещать в контекстном меню важные функции флеш-приложения, так как пользователи крайне редко прибегают к контекстному меню и могут просто не найти эти функции. Как правило, в контекстное меню помещается информация о разработчиках данного приложения. Гораздо реже - некоторые второстепенные или дублирующие функции.

[!] При вызове контекстного меню над текстовым полем изменяется набор пунктов этого меню и в нём появляются специальные пункты для работы с текстом.

Автор: admin

Дата добавления: 2011-07-20

Просмотров: 7115

Рейтинг поста: +11-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-05-24
> А как туда иконку добавить?

Никак. Нет такой возможности.
Комментатор
Комментарий добавил(а): Антон
Дата добавления: 2014-05-24
А как туда иконку добавить?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2012-02-28
Здесь миниатюрный генератор ссылок для флеш - http://edapskov.ru/pages.php?id=156 . Вам нужен второй параметр.
Комментатор
Комментарий добавил(а): Александр
Дата добавления: 2012-02-28
Здравствуйте, не подскажите как AS 3 коде приведённом здесь прописать, что бы ссылка открывалась в новом окне.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика