Оригинальный курсор на ActionScript 3.0

Я уже неоднократно обращался к теме пользовательского курсора на ActionScript 3.0. А сегодня решил рассказать об одном из способов простого и удобного оформления курсора в флеш-роликах. Итак, поговорим о классе ASWCCursor от Jean Andr? Mas.

Что делает класс ASWCCursor?

Класс ASWCCursor позволяет быстро и просто изменять внешний вид курсора в флеш-приложении. Доступно несколько (а, точнее, девять) курсоров:

- POINTER

- R_LEFT

- R_RIGHT

- DRAG

- BUSY

- R_SIDE

- R_TOP

- LINK

- HELP

Напомню, что стандартных курсоров в Flash Player всего пять (подробнее об этом смотрите в посте про управление внешним видом курсора).

Давайте посмотрим, как данные курсоры выглядят в готовом флеш-ролике. Для этого достаточно просто навести курсор мышки на одну из кнопок расположенного ниже флеш-ролика.

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

Конечно, вы можете возразить, что в ваших силах создать более красивые и оригинальные курсоры. Но в случае с классом ASWCCursor ставка сделана на удобство и простоту. А вам даже не придётся ничего рисовать - всё динамически отрисовывается кодом. Сам код довольно прост.

Код ActionScript 3.0:

/* импортируем класс */ import ASWCCursor; /* скрываем стандартный курсор мышки */ Mouse.hide(); /* создаём пользовательский курсор */ var cur:ASWCCursor = new ASWCCursor(); /* указываем, какой именно вид курсора хотим использовать в данном случае будет использован курсор POINTER - обычный курсор в виде стрелки */ cur.mode = ASWCCursor.POINTER; /* а данное свойство отвечает за размеры курсора */ cur.sizeFactor = 1; /* добавляем курсор в список отображения */ addChild(cur);

Вот, в принципе, мы и добавили курсор в наш флеш-ролик. Правда, чтобы данный курсор отслеживал реальное перемещение указателя мышки по сцене флеш-ролика, придётся добавить ещё немного кода. Здесь я не буду подробно объяснять работу остального кода, так как делал это уже в уроке «Пользовательский курсор на ActionScript 3.0». Сейчас я просто допишу необходимый код.

Код ActionScript 3.0:

/* импортируем класс */ import ASWCCursor; /* скрываем стандартный курсор мышки */ Mouse.hide(); /* создаём пользовательский курсор */ var cur:ASWCCursor = new ASWCCursor(); /* указываем, какой именно вид курсора хотим использовать в данном случае будет использован курсор POINTER - обычный курсор в виде стрелки */ cur.mode = ASWCCursor.POINTER; /* данное свойство отвечает за размеры курсора */ cur.sizeFactor = 1; /* добавляем курсор в список отображения */ addChild(cur); /* данный код заставляет пользовательский курсор перемещаться вслед за настоящим указателем мышки */ stage.addEventListener(MouseEvent.MOUSE_MOVE,mMove); function mMove(event:MouseEvent):void { var coordX:int = event.stageX; var coordY:int = event.stageY; if (coordX >= 0 && coordY >= 0 && coordX <= stage.stageWidth && coordY <= stage.stageHeight) { cur.visible = true; cur.x = coordX; cur.y = coordY; event.updateAfterEvent(); } } stage.addEventListener(Event.MOUSE_LEAVE, mLeave); function mLeave(event:Event):void { cur.visible = false; }

В принципе, на данном этапе можно и остановиться - курсор создан и теперь он работает правильно. Но давайте всё же его ещё улучшим. Давайте добавим нашему курсору интерактивности: пусть при наведении курсора на кнопку будет меняться внешний вид курсора. Для этого ещё раз модифицируем наш код.

Код ActionScript 3.0:

/* импортируем класс */ import ASWCCursor; /* скрываем стандартный курсор мышки */ Mouse.hide(); /* создаём пользовательский курсор */ var cur:ASWCCursor = new ASWCCursor(); /* указываем, какой именно вид курсора хотим использовать в данном случае будет использован курсор POINTER - обычный курсор в виде стрелки */ cur.mode = ASWCCursor.POINTER; /* данное свойство отвечает за размеры курсора */ cur.sizeFactor = 1; /* добавляем курсор в список отображения */ addChild(cur); /* данный код заставляет пользовательский курсор перемещаться вслед за настоящим указателем мышки */ stage.addEventListener(MouseEvent.MOUSE_MOVE,mMove); function mMove(event:MouseEvent):void { var coordX:int = event.stageX; var coordY:int = event.stageY; if (coordX >= 0 && coordY >= 0 && coordX <= stage.stageWidth && coordY <= stage.stageHeight) { cur.visible = true; cur.x = coordX; cur.y = coordY; event.updateAfterEvent(); } } stage.addEventListener(Event.MOUSE_LEAVE, mLeave); function mLeave(event:Event):void { cur.visible = false; } /* при наведении на кнопку btn курсор мышки меняется на LINK, а если увести курсор с кнопки, то курсор возвращается к первоначальному состоянию */ btn.addEventListener(MouseEvent.MOUSE_OVER, btnOver); function btnOver(event:MouseEvent):void { cur.mode = ASWCCursor.LINK; } btn.addEventListener(MouseEvent.MOUSE_OUT, btnOut); function btnOut(event:MouseEvent):void { cur.mode = ASWCCursor.POINTER; }

По моему скромному мнению, получилось неплохо. Если вы такого же мнения, то можете скачать сам класс ASWCCursor и исходник к данному уроку (под Adobe Flash CS5.5) по этой ссылке.

Автор: admin

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

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

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

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

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







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

Идиот-тест

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

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