![]() |
Координаты после stopDrag()
Есть класс, являющийся расширением UILoader.
У которого на MOUSE_DOWN идет this.startDrag(), MOUSE_UP - this.stopDrag() Почему после того как прошла операция stopDrag() координаты this.x и this.y не изменяются и при проверке они равны тем, которые объект получил в момент создания. Собственно как эту координату получить? Есть какой-то способ или нужно сочинять формулу выщитывающую положение регистратора объекта относительно его ротейшена и положения мышки? *_* |
Цитата:
После startDrag() при движении мышки начинают меняться свойства x и y, у того объекта, к которому был применен startDrag(). Сам так делал, но не для UILoader, не думаю, что там по-другому. Он же наследуется от Sprite. |
Код AS3:
trace("startDrag: "+this.x); trace("stopDrag: "+this.x); Добавлено: При всем при этом, объект не телепортируется на исходную позицию. Че-то ппц печаль какая-то :( |
попробуйте убрать все if, ctrlKey и т.д.
будет ли перемещать? я разбираться в них не стал, может в них и напутали. что значит телепортироваться на исходную позицию? на первоначальную или на новую? |
Объект переносится там где он оказался после stopDrag() но this.x, this.y не меняется.
Сделал какой-то албанский фикс. Приду домой - покажу *_* |
думаю такое здесь:
у UILoader/UIComponent нет своего startDrag(), есть только у Sprite, он и работает но x/y у UIComponent свои приватные, которые Sptite'товский драг не меняет.. а менять их будет UIComponent.move() - его и надо использовать на MOUSE_MOVE вместо драга |
попробуйте просто
Код AS3:
Цитата:
|
>>Хм.. но UIComponent наследник от Sprite
ну да, только вместо x и y ( и width/height тоже) у него перегруженные сеттеры и геттеры |
move конечно меняет координаты и они потом легко получаются через this.x this.y но проблема в том, что если объект повернут, то сложно понять куда нужно мувать его (формулу вчера так и не вывел).
Решил проблему так: При создании объекта выполняется Код AS3:
Код AS3:
|
непринципиально, но эта rp как бы и лишняя
parent.globalToLocal(localToGlobal(new Point())); точно так же покажет текущую координату.. насчет куда мувить: можно же ориентироваться по stage.mouseX(mouseY) - запоминать предыдущие координаты мыши и двигать на величину смещения, поворот/масштабирование тогда не мешают ни разу.. |
| Часовой пояс GMT +4, время: 23:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.