|
|
|||||
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Куда переехал onReleaseOutside
Смотрел миграции, там сказано что юзать теперь нужно mouseUp событие.
Но это событие срабатывает только если кнопка отжата на объекте, а если указатель мыши уже давно уехал с объекта, как мне поймать событие отжатия кнопки. Т.е. я ловлю на объекте mouseDown, а mouseUp мне нужно ловить этим же объектом, но даже если указатель находится уже вне области этого объекта. Подскажите, пожалуйста |
|
|||||
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Спасибо, помогло.
Но что делать, если нужно вызывать разные методы при mouseUp? Т.е. можно ли привязать mouseUp (как аналог onReleaseOutside) к нескольким объектам, чтобы они вызывали разные методы (функции-приемники событий)? |
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
ну и подписывайте разные колбеки..
__________________
#define true false //счастливой отладки, друзья |
|
|||||
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Это как, подскажите?
Я подписываюсь так вот: Код AS3: stage.addEventListener(MouseEvent.MOUSE_UP,eventMetod); Куда подписывать другие приемники??? Здесь же объект один - stage, глобальный. А мне надо чтобы фиксировалось нажатие на определенный объект (mouseDown) и фиксировалось бы "отпускание" этого объекта (mouseUp), даже если курсор мыши уже вне его. Т.е. есть несколько объектов и нужно ловить "нажатия" на них, "отпускания" и "отпускания за границей", вызывая разные методы. Последний раз редактировалось RAlfDog; 09.09.2009 в 04:00. |
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
stage.addEventListener(MouseEvent.MOUSE_UP, anything.eventMetod);
stage.addEventListener(MouseEvent.MOUSE_UP, otherthing.eventMetod);
__________________
#define true false //счастливой отладки, друзья |
|
|||||
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
А разве таким образом не будет следующего:
- отжимается кнопка мыши - stage слышит "отжатие" - stage вызывает оба метода anything.eventMetod и otherthing.eventMetod по очереди А хотелось бы так: - есть два объекта object1 и object2 - нажимается кнопка мыши на object1 - отжимается кнопка мыши за границей object1 - object1 слышит "отжатие" и вызывает метод metod1 (object2 не слышит "отжатие" за границей object1 и не вызывает метод metod2) ... аналогично для object2 |
|
|||||
Регистрация: May 2006
Адрес: Нск
Сообщений: 91
|
если я вас правильно понял, то вам нужно просто подписываться на событие стейджа в момент когда нажали, когда отпустили - отписываемся.
|
|
|||||
Регистрация: May 2009
Сообщений: 220
|
как вариант, можно в object1 и object2 определить переменную flagDown = false; (+ дополнение от MyXus)
в обработчике MOUSE_DOWN нажатого объекта пишем (можно без this) А в обработчиках события MOUSE_UP от stage пишете: последовательно вызываются все обработчики, но по факту реализуется только обработчик нужного объекта. |
|
|||||
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Цитата:
Цитата:
Жаль, что onReleaseOutside разработчики потеряли в AS3 |
Часовой пояс GMT +4, время: 02:51. |
|
« Предыдущая тема | Следующая тема » |
|
|