Пазлы событий (Events) — Софт Эйт Софт
Description: Обработка пользовательских событий с помощью пазлов Вердж3Д.

# Пазлы событий (Events)

Пазлы из этой категории обрабатывают события, генерируемые пользователем: щелчки/прикосновения мыши, наведение и перетаскивание.

## Содержание

- Перечень пазлов
  - when clicked
  - picked object
  - when hovered
  - hovered object
  - when moved
  - when dragged
  - drag move
  - drag rotate
  - drag scale

#

## Перечень пазлов

#

### when clicked

Ждет, пока пользователь щелкнет на указанном 3Д-объекте (или любом объекте в указанном списке или группе, или любом объекте на сцене, если используется пазл all objects) — затем запускает пазлы в слоте do.

Переключатель enable "if missed" action во всплывающем окне шестерёнки включает слот if missed: do Пазлы в этом слоте запускаются если пользователь щелкнул на каком-либо другом объекте или на фоне.

Переключатель advanced event options во всплывающем окне шестеренки активирует следующие свойства:

x-ray
  Позволяет щелкнуть объект за любыми объектами, которые щелкнуть нельзя. Полезно для щелчков объектов, расположенных за полупрозрачными поверхностями или объектами, отрисованными выше всех (деколи или рентгеновские геометрии).
double click / tap
  Выполнение пазлов в ответ на двойной щелчок (настольные компьютеры) или двойное нажатие (мобильные устройства).
mouse buttons
  Выполнение пазлы только для указанных кнопок мыши: левой, средней или правой.

Переключатель unique picked object id во всплывающем окне шестерёнки позволяет передавать уникальный идентификатор объекта в соответствующий пазл picked object вместо имени объекта. Это позволяет назначать обработчики нажатий на моделях, которые имеют одинаковые имена (из-за динамической загрузки или клонирования):

#

### picked object

Возвращает объект, на который нажал пользователь. Предназначен для использования с пазлом when clicked.

#

### when hovered

Ждет, пока пользователь наведет курсор на указанный 3Д-объект (или любой объект в указанном списке или группе, или любой объект на сцене, если используется пазл all objects) — затем запускает пазлы в слоте over/out: do.

Этот пазл работает только на устройствах, отображающих курсор мыши, в частности на настольных компьютерах и ноутбуках. На устройствах с тачскрином он будет проигнорирован.

Переключатель advanced event options во всплывающем окне шестеренки активирует следующие свойства:

x-ray
  Позволяет наводить курсор на другие объекты. Полезно для выделения объектов, расположенных за полупрозрачными поверхностями или объектов, которые рендерятся выше всех (деколи или прозрачная геометрия).

#

### hovered object

Возвращает объект, на который навел курсор пользователь. Предназначен для использования с пазлом when hovered.

Этот пазл работает только на устройствах, отображающих курсор мыши, в частности на настольных компьютерах и ноутбуках. На устройствах с тачскрином он будет проигнорирован.

#

### when moved

Отслеживает любые перемещения (положение, поворот и масштаб) указанного объекта (или любого объекта в указанном списке или группе, или любого объекта на сцене, если используется пазл all objects). Запускает пазлы в слоте start: do, если объект начал двигаться, продолжает выполнять пазлы в слоте while moving: do, пока объект не перестанет двигаться, затем запускает пазлы в слоте stop: do. Параметр velocity обозначает посекундное изменение любой координаты (x, y или z) любого из положений, вращения или масштаба, которое необходимо для запуска этого пазла.

#

### when dragged

Ожидает, пока пользователь не перетащит указанный 3Д-объект (или любой объект в указанном списке или группе, или любой объект на сцене, если используется пазл all objects) с помощью мыши или жеста касания — затем генерирует данные о движении для использования в пазле drag move, drag rotate или drag scale.

Переключатель advanced event options во всплывающем окне шестеренки активирует следующие свойства:

x-ray
  Позволяет перетаскивать объект за другие объекты. Полезно для перетаскивания объектов, расположенных за полупрозрачными поверхностями или объектами, отрисованными выше всех (декали или прозрачная геометрия).
mouse buttons
  Перетаскивание только с помощью указанных кнопок мыши: левой, средней или правой.

Переключатели enable start action и enable drop action активируют слоты для фиксаций событий начала и прекращения перетаскивания.

#

### drag move

Перемещает указанный 3Д-объект (или все объекты в указанном списке или группе, или все объекты на сцене, если используется пазл all objects) в соответствии с данными о перемещении, созданными пазлом when dragged. С помощью раскрывающегося меню mode можно ограничить перемещение определенной осью или плоскостью или не ограничивать вообще (режим XYZ).

Переключатель use "space" option во всплывающем окне шестерёнки активирует свойство space:

world
  Перемещать в мировых координатах, игнорируя иерархию объектов. Этот режим используется по умолчанию.
parent
  Перемещать относительно родительского объекта.
local
  Перемещать относительно самого объекта.

#

### drag rotate

Поворачивает указанный 3Д-объект (или все объекты в указанном списке или группе, или все объекты на сцене, если используется пазл all objects) в соответствии с данными о движении при перетаскивании, созданными пазлом when dragged. Используйте меню mode, чтобы ограничить вращение по определенной оси.

Переключатель use "space" option во всплывающем окне шестерёнки активирует свойство space:

world
  Вращать в мировых координатах, игнорируя иерархию объектов. Этот режим используется по умолчанию.
parent
  Вращать относительно родительского объекта.
local
  Вращать относительно самого объекта.

#

### drag scale

Масштабирует указанный 3Д-объект (или все объекты в указанном списке или группе, или все объекты на сцене, если используется пазл all objects) в соответствии с данными о перемещении при перетаскивании, созданными пазлом when dragged. Используйте меню mode, чтобы ограничить масштабирование по определенной оси, либо задайте XYZ чтобы выполнить масштабирование одновременно по всем осям.

## Проблемы с пазлами?

Обратитесь за помощью на нашем форуме!