![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Есть класс, являющийся расширением UILoader.
У которого на MOUSE_DOWN идет this.startDrag(), MOUSE_UP - this.stopDrag() Почему после того как прошла операция stopDrag() координаты this.x и this.y не изменяются и при проверке они равны тем, которые объект получил в момент создания. Собственно как эту координату получить? Есть какой-то способ или нужно сочинять формулу выщитывающую положение регистратора объекта относительно его ротейшена и положения мышки? *_* |
|
|||||
|
Цитата:
![]() После startDrag() при движении мышки начинают меняться свойства x и y, у того объекта, к которому был применен startDrag(). Сам так делал, но не для UILoader, не думаю, что там по-другому. Он же наследуется от Sprite. |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
public class dragDropWG extends UILoader { public function dragDropWG() { this.addEventListener(MouseEvent.MOUSE_DOWN,down); this.addEventListener(MouseEvent.MOUSE_UP,up); } private function down(event:MouseEvent):void { if (event.ctrlKey==true && event.shiftKey==true) { this.rotation+=45; } else { if (event.shiftKey==true) { trace("startDrag: "+this.x); this.startDrag(); } } } private function up(event:MouseEvent):void { if (event.ctrlKey==false && event.shiftKey==true) { this.stopDrag() trace("stopDrag: "+this.x); } } } trace("startDrag: "+this.x); trace("stopDrag: "+this.x); Добавлено: При всем при этом, объект не телепортируется на исходную позицию. Че-то ппц печаль какая-то ![]() Последний раз редактировалось MadSorcerer; 08.01.2009 в 00:20. |
|
|||||
|
попробуйте убрать все if, ctrlKey и т.д.
будет ли перемещать? я разбираться в них не стал, может в них и напутали. что значит телепортироваться на исходную позицию? на первоначальную или на новую? |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
Объект переносится там где он оказался после stopDrag() но this.x, this.y не меняется.
Сделал какой-то албанский фикс. Приду домой - покажу *_* |
|
|||||
|
думаю такое здесь:
у UILoader/UIComponent нет своего startDrag(), есть только у Sprite, он и работает но x/y у UIComponent свои приватные, которые Sptite'товский драг не меняет.. а менять их будет UIComponent.move() - его и надо использовать на MOUSE_MOVE вместо драга |
|
|||||
|
попробуйте просто
Добавлено через 4 минуты Хм.. но UIComponent наследник от Sprite. Неужели в Адобе так хреново замутили с этим UIComponent? |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 7
|
move конечно меняет координаты и они потом легко получаются через this.x this.y но проблема в том, что если объект повернут, то сложно понять куда нужно мувать его (формулу вчера так и не вывел).
Решил проблему так: При создании объекта выполняется После стопДраг: |
|
|||||
|
непринципиально, но эта rp как бы и лишняя
parent.globalToLocal(localToGlobal(new Point())); точно так же покажет текущую координату.. насчет куда мувить: можно же ориентироваться по stage.mouseX(mouseY) - запоминать предыдущие координаты мыши и двигать на величину смещения, поворот/масштабирование тогда не мешают ни разу.. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|