В флеш-приложениях существует набор стандартных курсоров, которые автоматически используется флеш-плеером в той или иной ситуации. Таких встроенных курсоров в флеш-плеере на данный момент пять:
1.) AUTO (вообще-то, это константа обозначает курсор, используемый автоматически в зависимости от объекта, над которым сейчас находится указатель мышки, но, как правило, это именно курсор в виде стрелки);
2.) ARROW (обычный курсор в виде стрелки);
3.) BUTTON (курсор в виде руки с вытянутым указательным пальцем, который явно даёт понять, что указатель мышки находится над интерактивным объектом);
4.) HAND (курсор в виде руки);
5.) IBEAM (данный курсор имеет форму буквы I и применяется при работе с текстовыми полями).
Замечу, что за время существования flash-плеера внешний вид курсоров неоднократно изменялся. В плеере, через который вы сейчас просматриваете данную страницу, курсоры будут выглядеть так:
В данном демо-ролике вид курсора изменяется при наведении на одну из пяти кнопок. Но при этом очевидно, что изменение вида курсора не является автоматическим.
Почему так происходит?
Объяснение очень простое. В приведённом выше флеш-ролике курсор изменяется не автоматически, а программным путём, с помощью кода на 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) демонстрируется работа со всеми пятью стандартными курсорами.
А у меня на этом всё.