Главная страница Раздел  Предыдущий пример Следующий пример Список примеров
Пример №28: Перемещение слоя в режиме drag

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

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

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


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


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

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