25. Cursor Part1. Как создать собственный курсор

Серия статей на тему Собственные курсоры:
  1. Cursor Part1. Как создать собственный курсор
  2. Cursor Part2. Библиотека FPCursor

Собственные курсоры очень часто применяются в играх, и редко в приложениях. Создать курсор в коде ActionScript можно двумя способами:

  1. С помощью встроенных возможностей языка ActionScript
  2. Собственная реализация

У каждого способа есть свои плюсы и минусы. Давайте разберем их.

Реализация с помощью встроенных возможностей

Что бы создать курсор с помощью встроенных методов ActionScript-а, необходимо создать объект класса MouseCursorData , и передать его в методе Mouse.registerCursor. Пример реализации можно посмотреть в документации Adobe. Основная сложность заключается в том что для создания анимированного курсора вам необходимо создать массив из BitmapData, которые будут сменяться каждый кадр. Это сильно усложняет процесс создания курсора если, например, вам необходимо показать вместо курсора какой нибудь MovieClip с анимацией. В этом случаем вам надо будет перевести ваш MovieClip в набор картинок. Имейте ввиду что для создания курсора допустимый размер картинок составляет 32x32px. Если вы хотите показывать ваш курсор только на конкретном объекте, вам надо при наведении на объект задавать свой курсор в свойстве Mouse.cursor, а когда флешка выходит за пределы, вернуть системный курсор, передав свойству Mouse.cursor одно из значений класса MouseCursor. Класс MouseCursor содержит следующие системные курсоры:

  1. MouseCursor.ARROW – стандартная стрелка
  2. MouseCursor.BUTTON – указательный палец. Обычно отображается на кнопках
  3. MouseCursor.HAND – рука
  4. MouseCursor.IBEAM – курсор в виде вертикальной черты. Обычно отображается на текстовом поле
  5. MouseCursor.AUTO – флешка автоматически выбирает тип курсора. Т.е. если навели мышку на кнопку показывается BUTTON, если навели на текстовое поле  – IBEAM

Пример флешки с анимированным курсором и выбором стандартных:

Здесь должна быть флешка. Установите Flash Player


Исходный код:

Посмотреть как выглядит анимация во FLA файле можно здесь

Собственная реализация курсора

Для собственное реализации курсора, вам необходимо:

  • Скрыть системный курсор
  • Создать обычный Sprite(или любой другой DisplayObject), и
    отображать его в том месте где сейчас находится мышка

Скрыть и показать системный курсор можно с помощью методов Mouse.hide и Mouse.show. Ниже пример флешки:

Здесь должна быть флешка. Установите Flash Player


Исходный код собственной реализации:

В данном примере используется тот же анимированный курсор что и в предыдущем примере. В отличии от встроенное реализации, в этом случае когда вы перемещаете мышку, флешка обновляет местоположение курсора не сразу, а только после наступления следующего кадра. Из-за этого создается ощущение что курсор немного запаздывает. Что бы этого не было, вызывайте метод event.updateAfterEvent в обработчике MouseEvent.MOUSE_MOVE. Это заставит флешь плеер обновить кадр сразу после обработчика события.

Не злоупотребляйте методом event.updateAfterEvent, в некоторых случаях это может приводить к потере FPS, не забывайте об этом.

Посмотреть разницу флешек с использованием updateAfterEvent и без можно во флешке:

Здесь должна быть флешка. Установите Flash Player

Из минусов этой реализации пожалуй самый не приятный, это непредвиденное поведение системного курсора. Например если вы откроете и закроете контекстное меню, может случится так что системный курсор будет виден поверх вашего собственного. Для решения этой проблемы можно комбинировать оба выше указанных способа. Т.е. создаем прозрачный курсор стандартным способом, и отображаем свой собственный.

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

Скачать примеры урока можно здесь

В следующей статье я представляю вашему обзору библиотеку FPCursor. Она содержит несколько классов упрощающих создание и отображение собственных курсоров.

Серия статей на тему Собственные курсоры:
  1. Cursor Part1. Как создать собственный курсор
  2. Cursor Part2. Библиотека FPCursor

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 1997 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: