Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как сделать чтобы пользовательский курсор менялся (http://www.flasher.ru/forum/showthread.php?t=204272)

Palp 25.10.2013 19:38

как сделать чтобы пользовательский курсор менялся
 
Доброго времени суток.
Подскажите пожалуйста как сделать чтобы пользовательский курсор менялся надругой символ при наведении на кнопку в позиции OVER и DOWN на указанный символ из библиотеки.Причём на каждую кнопку должен появляться другой,соответствующий этой кнопке символ.Например ,кнопка в право,курсор меняется на стрелку в право,кнопка в лево - курсор меняется на стрелку в лево.


вот код
Код AS3:

buttR.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene);
 
function fl_ClickToGoToScene(event:MouseEvent):void
{
MovieClip(this.root).gotoAndPlay(1,"D1");
}
 
stage.addChild(curNo_mc);
curNo_mc.mouseEnabled = false;
curNo_mc.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor_2);
 
function fl_CustomMouseCursor_2(event:Event)
{
curNo_mc.x = stage.mouseX;
curNo_mc.y = stage.mouseY;
}
Mouse.hide();

заранее спасибо за помощ

expl 26.10.2013 00:06

Цитата:

Доброго времени суток.
Подскажите пожалуйста как сделать чтобы пользовательский курсор менялся надругой символ при наведении на кнопку в позиции OVER и DOWN на указанный символ из библиотеки
Чтобы не запутаться, создайте пустой Sprite и двигайте его, а при срабатывании событий MOUSE_OVER - удаляйте из него все объекты и ложите нужный курсор.
При MOUSE_OUT - просто удаляйте все объекты из спрайта.

А если не хотите писать много кода, то:
- задите сюда:
http://www.flasher.ru/forum/blog.php?b=518
- скачайте оттуда AS3CursorManager.zip
- скопируйте папку src/ui себе в src
- напишите у себя:
Код AS3:

// Это обязательная инициализация (на старте приложения можно сделать)
CursorManager.init(stage, stage);
...
// Инициализация курсоров
var cursor0:Cursor = new Cursor(new MyCursorFromLib1(), 0, 0 true);
var cursor0:Cursor = new Cursor(new MyCursorFromLib2(), 0, 0, true);
 
// Добавление курсора на кнопки
CursorManager.newHover().setTarget(myButton1).setCursor(cursor0);
CursorManager.newHover().setTarget(myButton2).setCursor(cursor1);

Здесь myButton1, myButton2 - ваши кнопки, над которыми надо показать разные курсоры
MyCursorFromLib1, MyCursorFromLib2 - классы, сопоставленные с символами в библиотеке, наследники DisplayObject, представляют собой собственно курсоры

Вообще, лучше сделать нативные курсоры (не тормозят при движении, правда есть ограничение по размеру)
Регистрируется через этот метод (можно даже анимированный вставить):
Mouse::registerCursor(name:String, cursor:MouseCursorData):void
Устанавливается по имени через Mouse.cursor
Ну или через ту же систему:
Код AS3:

CursorManager.init(stage, stage);
 
Mouse.registerCursor("cursor1", ...);
Mouse.registerCursor("cursor2", ...);
 
// Добавление курсора на кнопки
CursorManager.newHover().setTarget(myButton1).setCursor(new Cursor(null, 0, 0 false, "cursor1"));
CursorManager.newHover().setTarget(myButton2).setCursor(new Cursor(null, 0, 0, false, "cursor2"));



Часовой пояс GMT +4, время: 21:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.