PDA

Просмотр полной версии : Как узнать тип курсора?


Hamid
21.09.2011, 13:43
Всем привет! Как определить какой тип курсора щас стоит? стрелка, рука и т. д. Как выбрать нужный режим нашел, а вот как его определить нет. Весь инет обыскал)) Помогите, ооочень нужно.

goodguy
21.09.2011, 13:50
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/ui/Mouse.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6#cursor

Hamid
21.09.2011, 13:59
goodguy, я это в первую очередь там посмотрел, но не могу понять как он возвращает?
делаю trace(MouseCursor); пишет [class MouseCursor]. Как быть?

fish_r
21.09.2011, 14:17
trace( Mouse.cursor );

?

goodguy
21.09.2011, 14:22
if (Mouse.cursor == MouseCursor.HAND) {
trace("курсор - рука");
} else if (Mouse.cursor == MouseCursor.ARROW) {
trace("сейчас курсор - стрелка");
}

и т.п.

Hamid
21.09.2011, 14:55
fish_r, это тоже приходило в голову trace(Mouse.cursor); но! Все время выдает auto, так что, goodguy Ваш код тоже не помогает. Такое ощущение, что через маус и прочее не определить, только библиотека system может? Хотя в справке написанно:
cursor свойство
cursor:String
Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5
Задает или возвращает тип курсора или (для встроенного курсора) имя курсора.

Значение по умолчанию – flash.ui.MouseCursor.AUTO!!!, а я то меняю его на курсор-руку! Или я тупой или они врут((

fish_r
21.09.2011, 14:59
Вероятно в системе он по-умолчанию "авто". Если вы его смените через свойство, тогда он вернет вам то состояние которое вы ему задали.

Hamid
21.09.2011, 15:05
Я ему даже насильно задаю MouseCursor.BUTTON; а ему без разницы, как была стрелка, так и осталась. И трейсит авто. В голову вообще не лезет, как это может быть.

Добавлено через 6 минут
Мне это нужно определить чтоб решить вот такую проблему: есть спрайт(спрайт кстати в режиме кнопки, т.е. курсор при наведении меняется на руку), у него есть два слушателя - нажатие кнопки мыши и отпускание. Если я отпускаю кнопку мыши при этом мышка за пределами спрайта, то естественно, уже этот слушатель не регистрируется, но при этом курсор становится стрелкой. Я хотел через курсор проверять отпускание клавиши мыши. Есть еще другой подход, надо как-то слушать глобальные события мыши, кто что знает об этом?

GBee
21.09.2011, 15:13
Mouse.cursor = MouseCursor.BUTTON;?
А под какой плеер вы это делаете?

Hamid
21.09.2011, 15:19
10 плеер.

GBee
21.09.2011, 15:26
10.0.0.0?
Note: For Flash Player 10.2 or AIR 2.6 and later versions, this property sets or gets the cursor name when you are using a native cursor. A native cursor name defined using Mouse.registerCursor() overwrites currently predefined cursor types (such as flash.ui.MouseCursor.IBEAM).

Правда я осмысленно перевести не могу, но может есть какая то соль.


Мне это нужно определить чтоб решить вот такую проблему: есть спрайт(спрайт кстати в режиме кнопки, т.е. курсор при наведении меняется на руку), у него есть два слушателя - нажатие кнопки мыши и отпускание. Если я отпускаю кнопку мыши при этом мышка за пределами спрайта, то естественно, уже этот слушатель не регистрируется, но при этом курсор становится стрелкой. Я хотел через курсор проверять отпускание клавиши мыши. Есть еще другой подход, надо как-то слушать глобальные события мыши, кто что знает об этом?

При нажатии на спрайт, подписаться на отжатие у стейджа.

Kidd002
21.09.2011, 15:26
Для того чтобы узнать нажали ли кнопку достаточно слушать MouseEvent.CLICK.
Если же вам нужно знать где именно отпустили кнопку мыши, то помимо событий MOUSE_DOWN и MOUSE_UP можно слушать события MOUSE_OUT, MOUSE_OVER.

goodguy
21.09.2011, 17:01
Я ему даже насильно задаю
Что-то слабо верится. Можно код глянуть? Там либо в коде ошибка, либо, как уже сказали выше, плеер более старый.
Я уже много раз это делал, и все всегда работает.