![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 74
|
|
|
|||||
|
Регистрация: May 2009
Сообщений: 63
|
Конечно реально (тестировать во FLA файле):
//переменные с координатами x и y перед началом перетаскивания: var X:int; var Y:int; //объект который будем таскать: var cont:Sprite = new Sprite(); //рисуем тут кружочек cont.graphics.beginFill(0xFF0000); cont.graphics.drawCircle(30, 30, 30); cont.graphics.endFill(); //добавляем слушатели нужных событий: cont.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDOWN); cont.addEventListener(MouseEvent.MOUSE_UP, onMouseUP); //добавляем в список отображения addChild(cont); //обработчик понятно для чего function onMouseDOWN(e:MouseEvent){ X = cont.x;//запоминаем x Y = cont.y;//запоминаем y e.target.startDrag();//начинаем движение... } //еще один: function onMouseUP(e:MouseEvent){ e.target.stopDrag();//останавливаем движение... //выводим наглядное сообщение: trace("X был "+X+" стал "+cont.x+"\nY был "+Y+" стал "+cont.y); }
__________________
Все не так просто, как кажется... все гораздо проще... |
|
|||||
|
[+6 23.11.09]
|
это же у тебя получились глобальные переменные в классе, чел спрашивал без использование глобальных!
|
|
|||||
|
Регистрация: May 2009
Сообщений: 220
|
доделал код Аллиас:
//объект который будем таскать: var cont:Sprite = new Sprite(); //рисуем тут кружочек cont.graphics.beginFill(0xFF0000); cont.graphics.drawCircle(30, 30, 30); cont.graphics.endFill(); //добавляем слушатели нужных событий: cont.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDOWN); cont.addEventListener(MouseEvent.MOUSE_UP, onMouseUP); //добавляем в список отображения addChild(cont); //обработчик понятно для чего function onMouseDOWN(e:MouseEvent){ cont.name = cont.x + " " + cont.y; e.target.startDrag();//начинаем движение... } //еще один: function onMouseUP(e:MouseEvent){ e.target.stopDrag();//останавливаем движение... var lastX:String = cont.name.substr(0, cont.name.indexOf(" ")); var lastY:String = cont.name.substr(cont.name.indexOf(" ")+1, (cont.name.length) - (cont.name.indexOf(" ")+1)); //выводим наглядное сообщение: trace("X был "+uint(lastX)+" стал "+cont.x+"\nY был "+uint(lastY)+" стал "+cont.y); } |
|
|||||
|
Регистрация: May 2009
Сообщений: 63
|
switcher!, Круто!!! Не знал что свойству name можно задавать значение... век живи - век учись.
вот тогда самая динамичная версия кода (все ссылки на таскаемый объект в e.target): //объект который будем таскать: var cont:Sprite = new Sprite(); //рисуем тут кружочек cont.graphics.beginFill(0xFF0000); cont.graphics.drawCircle(30, 30, 30); cont.graphics.endFill(); //добавляем слушатели нужных событий: cont.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDOWN); cont.addEventListener(MouseEvent.MOUSE_UP, onMouseUP); //добавляем в список отображения addChild(cont); //обработчик понятно для чего function onMouseDOWN(e:MouseEvent){ e.target.name = e.target.x + " " + e.target.y; e.target.startDrag();//начинаем движение... } //еще один: function onMouseUP(e:MouseEvent){ e.target.stopDrag();//останавливаем движение... var lastX:String = e.target.name.substr(0, e.target.name.indexOf(" ")); var lastY:String = e.target.name.substr(e.target.name.indexOf(" ")+1, (e.target.name.length) - (e.target.name.indexOf(" ")+1)); //выводим наглядное сообщение: trace("X был "+uint(lastX)+" стал "+e.target.x+"\nY был "+uint(lastY)+" стал "+e.target.y); }
__________________
Все не так просто, как кажется... все гораздо проще... Последний раз редактировалось Аллиас; 08.08.2009 в 14:44. |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|