Перемещение слоя в режиме drag

Перемещение изображения производится с помощью мыши при нажатой левой кнопке. Когда кнопка мыши будет отпущена, "образ" всех элементов изображения останется на новом месте. После этого необходимо осуществить перемещение "реальных" элементов изображения. Для этого нужно изменить  координаты слоя , выполнив аффинное преобразование, или изменить параметры смещения по вертикали и горизонтали для данного слоя (xshift, yshift или shifts).  

Апплет предоставляет несколько методов для перемещения слоя в режиме drag. 

 Метод set_drag_layer(String layer_name) - задает конкретный слой, который начнет двигаться после того, как  начнется режим drag. Это удобно когда заранее известно какой слой будет перемещаться. 

Метод start_drag_layer(String layer_name ) - предназначен для задания слоя для перемещения уже после того, как клавиша мыши нажата, но еще не отпущена. Дело в том, что перед началом режима drag в момент нажатия клавиши мыши делаются некие подготовительные действия, для которых надо знать тот слой, который будет двигаться. Метод start_drag_layer(String layer_name ) задает слой  для режима drag уже после нажатия клавиши мыши  и выполняет эти подготовительные действия уже после того как клавиша мыши нажата. Это удобно например, когда слой для режима drag определяется после нажатия клавиши мыши по положению курсора (методы int get_selected_in_layer( String layer_name ) и int get_selected_in_group( String group_name, int select_par ) позволяют получить информацию о выбранном элементе изображения).

Метод set_drag_zone(int x, int y, int width, int height) - устанавливает область для перемещения слоя (для режимов "drag" и "choose_box").

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

В примере №29  показано как определить слой, который пользователь выбирает для перемещения с помощью мыши;  выполнить перемещение слоя и как результат - получить новые координаты. 

На главную страницу Наверх

.