Управляем внешним видом курсора мышки в ActionScript 3.0

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

1.) AUTO (вообще-то, это константа обозначает курсор, используемый автоматически в зависимости от объекта, над которым сейчас находится указатель мышки, но, как правило, это именно курсор в виде стрелки);

MouseCursor.AUTO

2.) ARROW (обычный курсор в виде стрелки);

MouseCursor.ARROW

3.) BUTTON (курсор в виде руки с вытянутым указательным пальцем, который явно даёт понять, что указатель мышки находится над интерактивным объектом);

MouseCursor.BUTTON

4.) HAND (курсор в виде руки);

MouseCursor.HAND

5.) IBEAM (данный курсор имеет форму буквы I и применяется при работе с текстовыми полями).

MouseCursor.IBEAM

Замечу, что за время существования flash-плеера внешний вид курсоров неоднократно изменялся. В плеере, через который вы сейчас просматриваете данную страницу, курсоры будут выглядеть так:

Загрузить Adobe Flash Player

В данном демо-ролике вид курсора изменяется при наведении на одну из пяти кнопок. Но при этом очевидно, что изменение вида курсора не является автоматическим.

Почему так происходит?

Объяснение очень простое. В приведённом выше флеш-ролике курсор изменяется не автоматически, а программным путём, с помощью кода на ActionScript 3.0.

Давайте теперь посмотрим, как средствами языка ActionScript 3.0 можно изменить внешний вид указателя мышки.

Для этого создадим флеш-проект, а в проекте создадим мувиклип под именем btn. Этот мувиклип и будет тем объектом, при наведении на который курсор изменит свой внешний вид. Когда мувиклип btn будет создан и добавлен на сцену, можем переходить к коду. Давайте для начала изменим курсор на BUTTON.

Код ActionScript 3.0:

btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver); function onMouseOver(event:MouseEvent):void { Mouse.cursor = MouseCursor.BUTTON; }

Как видите, всё очень просто. Надо свойству cursor класса Mouse присвоить одну из пяти перечисленных ранее констант (AUTO, ARROW, BUTTON, HAND или IBEAM), которые хранятся в классе MouseCursor.

Но в приведённом выше коде есть один серьёзный недостаток. Дело в том, что изменив вид курсора на BUTTON и уведя его с нашего мувика btn... мы по-прежнему будем видеть именно BUTTON-курсор. Это не есть хорошо. Совершенно очевидно, что при уводе курсора с объекта курсор надо менять. Причём менять на AUTO. Поэтому дополним наш предыдущий код.

Код ActionScript 3.0:

btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseOver); function onMouseOver(event:MouseEvent):void { Mouse.cursor = MouseCursor.BUTTON; } btn.addEventListener(MouseEvent.MOUSE_OUT,onMouseOut); function onMouseOut(event:MouseEvent):void { Mouse.cursor = MouseCursor.AUTO; }

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

Код ActionScript 3.0:

btn_ARROW.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverARROW); function onMouseOverARROW(event:MouseEvent):void { Mouse.cursor = MouseCursor.ARROW; } btn_ARROW.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutARROW); function onMouseOutARROW(event:MouseEvent):void { Mouse.cursor = MouseCursor.AUTO; } btn_BUTTON.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverBUTTON); function onMouseOverBUTTON(event:MouseEvent):void { Mouse.cursor = MouseCursor.BUTTON; } btn_BUTTON.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutBUTTON); function onMouseOutBUTTON(event:MouseEvent):void { Mouse.cursor = MouseCursor.AUTO; } btn_HAND.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverHAND); function onMouseOverHAND(event:MouseEvent):void { Mouse.cursor = MouseCursor.HAND; } btn_HAND.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutHAND); function onMouseOutHAND(event:MouseEvent):void { Mouse.cursor = MouseCursor.AUTO; } btn_IBEAM.addEventListener(MouseEvent.MOUSE_OVER,onMouseOverIBEAM); function onMouseOverIBEAM(event:MouseEvent):void { Mouse.cursor = MouseCursor.IBEAM; } btn_IBEAM.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutIBEAM); function onMouseOutIBEAM(event:MouseEvent):void { Mouse.cursor = MouseCursor.AUTO; }

В данном коде с помощью четырёх мувиков с говорящими названиями (btn_ARROW, btn_BUTTON, btn_HAND и btn_IBEAM) демонстрируется работа со всеми пятью стандартными курсорами.

А у меня на этом всё.

Автор: admin

Дата добавления: 2011-11-18

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

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

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

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Vladimir
Дата добавления: 2013-09-20
Спасибо, очень помогло мне. Добавил страничку в закладки на всякий случай
Добавить комментарий:







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

Идиот-тест

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

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