![]() |
Перетаскивание спрайта и различные координаты мыши
Нашел баг, а может и фичу, но очень уж странную.
При перетаскивании объекта target в установленных рамках при отжатии мыши target.mouseX, target.mouseY, stage.mouseX, stage.mouseY имеют значения в точке зажатия объекта для перетаскивания, а не в точке, где была мышь во время дропа. Без установки рамок - все ок. Переместите квадрат так, чтобы он уперся в правый нижний угол своих границ движения, отожмите мышь правее и ниже, чтобы квадрат не съехал из правого нижнего угла. Затем зажимайте мышь в середине квадрата и отпускайте в различных точках экрана, но в секторе ниже и правей, чтобы квадрат не съезжал. Смотрите за значениями в аутпуте - они должны быть примерно одинаковы в различных точках отпускания мыши. Код AS3:
Как же вытащить реальные координаты мыши во время дропа? |
MouseEvent.MOUSE_MOVE
|
Про эти костыли я догадался))) Можно еще короткий таймер наверно включать при дропе, чтобы он уже сверил координаты мыши)))
|
это не костыли
события MouseEvent.MOUSE_DOWN и MouseEvent.MOUSE_UP возникают только в начале и конце перетаскивания во время перетаскивания снимаем координаты по событиям: - MouseEvent.MOUSE_MOVE - Event.ENTER_FRAME - TimerEvent.TIMER |
если внимательно читать, то интересует именно момент дропа - т.е. событие "MOUSE_UP")))
|
Действительно занятное поведение.
Может дело в этом: Цитата:
Если повесить на МаусМув выдачу координат стэйдж.маусИкс/Игрек, то они выдаются правильно, в обработчике mouseUpListener неправильно, а потом - опять правильно. |
ИМХО вполне логичное поведение при драге. Хотите реальные координаты, берите их из event.stageX / stageY.
|
О, забыл про них)))
UPD: А не, не забыл! Я просто не имею к ним доступа, т.к. подписываюсь на собственное событие компонента, который говорит, что произошло дропанье предмета, и ессно stageX, stageY не передает. Я думал, что можно, конечно, добавить эти поля, но они как-то совсем не к месту там в этом простеньком событии. |
| Часовой пояс GMT +4, время: 05:51. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.