![]() |
Куда переехал onReleaseOutside
Смотрел миграции, там сказано что юзать теперь нужно mouseUp событие.
Но это событие срабатывает только если кнопка отжата на объекте, а если указатель мыши уже давно уехал с объекта, как мне поймать событие отжатия кнопки. Т.е. я ловлю на объекте mouseDown, а mouseUp мне нужно ловить этим же объектом, но даже если указатель находится уже вне области этого объекта. Подскажите, пожалуйста :) |
Подписаться к стейджу :)
|
Цитата:
Но что делать, если нужно вызывать разные методы при mouseUp? Т.е. можно ли привязать mouseUp (как аналог onReleaseOutside) к нескольким объектам, чтобы они вызывали разные методы (функции-приемники событий)? |
ну и подписывайте разные колбеки..
|
Это как, подскажите?
Я подписываюсь так вот: Код AS3: stage.addEventListener(MouseEvent.MOUSE_UP,eventMetod); Куда подписывать другие приемники??? Здесь же объект один - stage, глобальный. А мне надо чтобы фиксировалось нажатие на определенный объект (mouseDown) и фиксировалось бы "отпускание" этого объекта (mouseUp), даже если курсор мыши уже вне его. Т.е. есть несколько объектов и нужно ловить "нажатия" на них, "отпускания" и "отпускания за границей", вызывая разные методы. |
stage.addEventListener(MouseEvent.MOUSE_UP, anything.eventMetod);
stage.addEventListener(MouseEvent.MOUSE_UP, otherthing.eventMetod); |
А разве таким образом не будет следующего:
- отжимается кнопка мыши - stage слышит "отжатие" - stage вызывает оба метода anything.eventMetod и otherthing.eventMetod по очереди А хотелось бы так: - есть два объекта object1 и object2 - нажимается кнопка мыши на object1 - отжимается кнопка мыши за границей object1 - object1 слышит "отжатие" и вызывает метод metod1 (object2 не слышит "отжатие" за границей object1 и не вызывает метод metod2) ... аналогично для object2 |
если я вас правильно понял, то вам нужно просто подписываться на событие стейджа в момент когда нажали, когда отпустили - отписываемся.
|
как вариант, можно в object1 и object2 определить переменную flagDown = false; (+ дополнение от MyXus)
в обработчике MOUSE_DOWN нажатого объекта пишем Код AS3:
А в обработчиках события MOUSE_UP от stage пишете: Код AS3:
|
Цитата:
Цитата:
Жаль, что onReleaseOutside разработчики потеряли в AS3 :rolleyes: |
| Часовой пояс GMT +4, время: 15:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.