事件类拼图参考 - Soft8Soft
Description: 使用Verge3D来处理用户事件。

# 事件｜Events

此类拼图处理用户产生的事件：鼠标点击/触摸，悬停和拖动。

## 内容

- 拼图参考
  - when clicked（当点击时）
  - picked object（选中的对象）
  - when hovered（当悬停时）
  - hovered object（悬停的对象）
  - when moved（当移动时）
  - when dragged（当拖动时）
  - drag move（拖移）
  - drag rotate（拖动旋转）
  - drag scale（拖动缩放）

#

## 拼图参考

#

### when clicked（当点击时）

等待用户点击指定的3D对象（或指定列表或组中的任何对象，或如果使用了 all objects（全部对象）拼图则为场景中的任何对象）— 然后运行 do 插槽中的拼图。

如果在齿轮弹出菜单中启用了 enable "if missed" action 复选框，则会出现额外的 if missed: do 插槽。当用户点击其他对象或背景时，将触发此插槽中的拼图。

齿轮弹出菜单中的 advanced event options 复选框会激活以下属性：

x-ray
  允许点击任何不可点击对象后面的物体。对于点击位于半透明表面后面的或在最顶层渲染对象（贴花或X射线几何图形）后面的物体时很有用。
double click / tap
  响应桌面端双击（double click）或移动端连续点击（double tap）事件来执行拼图。
mouse buttons
  只对指定的鼠标按键执行拼图：左键、中键或右键。

当在齿轮弹出菜单中激活 unique picked object id 复选框时，该拼图将向附属的 picked object 拼图传递唯一ID，而不是对象名称。这允许您在具有相同名称的模型（由于动态追加或克隆而产生）上分配点击监听器：

#

### picked object（选中的对象）

返回用户所点击的对象。适用于 when clicked 拼图。

#

### when hovered（当悬停时）

等待用户将鼠标悬停在/移出指定的3D对象（或指定列表或组中的任何对象，或如果使用了 all objects（全部对象）拼图则为场景中的任何对象）— 然后运行 over/out: do 插槽中的拼图。

此拼图仅在由鼠标光标控制的设备上有效，即台式机和笔记本电脑。在触摸屏设备上将不起作用。

齿轮弹出菜单中的 advanced event options 复选框会激活以下属性：

x-ray
  允许在其他对象后面悬停。用于勾勒位于半透明表面后面的，或位于最顶层渲染对象（贴花或X射线几何图形）后面的物体轮廓时很有用。

#

### hovered object（悬停的对象）

返回用户悬停的对象。适用于 when hovered 拼图。

此拼图仅在由鼠标光标控制的设备上有效，即台式机和笔记本电脑。在触摸屏设备上将不起作用。

#

### when moved（当移动时）

追踪指定对象（或指定列表或组中的任何对象，或如果使用了 all objects（全部对象）拼图则为场景中的任何对象）的任何移动（位置、旋转和缩放）。如果对象开始移动，则运行 start: do 插槽中的拼图，在对象持续移动期间继续运行 while moving: do 插槽中的拼图，直到对象停止移动，然后运行 stop: do 插槽中的拼图。velocity 参数表示位置、旋转或缩放的任何坐标（x、y 或 z）的每秒变化量，超过此值即触发此拼图。

#

### when dragged（当拖动时）

等待用户用鼠标或触摸手势拖动指定的3D对象（或指定列表或组中的任何对象，或如果使用了 all objects（全部对象）拼图则为场景中的任何对象）— 然后生成移动数据，用于 drag move、drag rotate 或 drag scale 拼图。

齿轮弹出菜单中的 advanced event options 复选框会激活以下属性：

x-ray
  允许拖动在其他对象后面的物体。对于拖动位于半透明表面后面的或在最顶层渲染对象（贴花或X射线几何图形）后面的物体时很有用。
mouse buttons
  只使用指定的鼠标按键拖拽：左键、中键或右键。

enable start action 和 enable drop action 复选框会激活相应的插槽，用于捕获开始拖动和停止拖动的事件。

#

### drag move（拖移）

根据 when dragged 拼图生成的拖动移动数据来移动指定的3D对象（或指定列表或组中的所有对象，或如果使用了 all objects（全部对象）拼图则为场景中的所有对象）。使用 mode 下拉菜单将移动限制为特定轴或平面，或设置为 XYZ 以在所有方向上自由移动。

齿轮弹出菜单中的 use "space" option 复选框会激活 space 下拉菜单：

world
  在世界坐标中执行移动，即忽略对象的任何父子关系。此模式为默认使用。
parent
  相对于父对象执行移动。
local
  相对于对象自身执行移动。

#

### drag rotate（拖动旋转）

根据 when dragged 拼图生成的拖动移动数据来旋转指定的3D对象（或指定列表或组中的所有对象，或如果使用了 all objects（全部对象）拼图则为场景中的所有对象）。使用 mode 下拉菜单将旋转限制为特定轴。

齿轮弹出菜单中的 use "space" option 复选框会激活 space 下拉菜单：

world
  在世界坐标中执行旋转，即忽略对象的任何父子关系。此模式为默认使用。
parent
  相对于父对象执行旋转。
local
  相对于对象自身执行旋转。

#

### drag scale（拖动缩放）

根据 when dragged 拼图生成的拖动移动数据来缩放指定的3D对象（或指定列表或组中的所有对象，或如果使用了 all objects（全部对象）拼图则为场景中的所有对象）。使用 mode 下拉菜单将缩放限制为特定轴，或设置为 XYZ 以均匀缩放对象。

## 在使用拼图时遇到困难？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。