Документ взят из кэша поисковой машины. Адрес оригинального документа : http://adept.srcc.msu.ru/adept/java/applet_book/drag/drag1opis1.htm
Дата изменения: Mon Jan 15 15:05:23 2007
Дата индексирования: Mon Oct 1 20:21:49 2012
Кодировка: Windows-1251
Главная страница Раздел  Предыдущий пример Следующий пример Список примеров
Пример ?28: Перемещение слоя в режиме drag

Имеется возможность осуществлять перемещение слоя 
и получать координаты нового местоположения слоя. 
А также можно  устанавливать различные области для перемещения.

В окне апплета представлено однослойное изображение - квадрат, который можно перемещать в режиме drag. Переместив указатель мыши на данное изображение и нажав левую кнопку, можно передвигать слой в окне апплета. Когда кнопка будет отпущена, слой останется на новом месте. Ниже, в текстовом поле, будут записаны параметры сдвига слоя и его новые координаты.
Если отметить флажок "Установить область перемещения", то будут обозначены границы новой области (100х100 пикселов), в которой разрешено перемещение объекта. 
При отмене данного флажка перемещение  разрешено на всей области апплета.

Для того, чтобы понять когда закончился режим drag надо регулярно опрашивать состояние клавиши "мыши". Это достигается за счет периодического вызова функции drag(). (setTimeout("drag()",200)).
После отпускания нажатой клавиши мыши (if(app.get_mouse_state(2)==2)) происходит определение параметров сдвига "образа" слоя по горизонтали и по вертикали. См. комментарии в программе..


Наведите курсор мыши на квадрат. Нажмите левую кнопку и переместите его в другое место. Ниже вы увидите параметры сдвига левого верхнего угла квадрата и его новые координаты.


Установить область перемещения слоя

Параметры сдвига слоя относительно его предыдущего
xshift =     yshift =
Координаты слоя (левого верхнего угла квадрата)
x =     y =