事件系统

描述
事件系统对任何研究都至关重要。它是用于设置要记录的值、使实验进展和创建任务的方式。用户可以创建事件系统,以执行任务中的所有功能、逻辑和交互。事件通常充当对象和变量之间的中介。

事件系统由触发器和动作组成。在这里,您设置规则,例如“当发生这个时”(触发器)然后“执行这个”(动作)。例如:如果参与者单击特定图像(触发器),那么显示不同的随机图像(动作)。
有关事件在Labvanced中如何工作的介绍,请参考这个快速视频:
创建事件 - 概述
事件在任务编辑器中的右上角的“事件”选项卡下进行管理。可以通过单击+ Frame Event为在该帧上应发生的事件创建新事件,或通过单击+ Trial Event将事件应用于所有帧。所有现有事件在右侧面板中以列表视图显示。事件在帧级别上定义,并且可以对每个帧是单独/特定的,或在整个实验中复制/相同。

无论哪种方式,事件始终为指定帧中的实验组内的所有实验进行定义。然而,自定义逻辑允许用户仅在某些实验、条件或其他情况下执行事件。
选择触发器
当您创建新事件时,触发器选择以瓷砖网格的形式打开。触发器类型按类别(用户输入、生理信号、实验和帧、变量、媒体对象、API和全局)进行组织。顶部的搜索框允许您按名称筛选触发器类型。单击任何瓷砖将其设置为事件的触发器。
一旦选择了触发器,事件将显示当前触发器名称和图标的紧凑条。要切换到不同的触发器,单击Change trigger按钮(铅笔图标)以重新打开瓷砖网格。
下面的视频概览了Labvanced中可用的触发器和动作:
事件的执行顺序可以调整。默认情况下,具有相同触发器的事件在列表中更靠上并将首先执行。事件也可以复制和删除。在选择现有事件时,具体信息将显示在右下角的(事件属性)面板中。为了更好地概览,现有事件也可以重新打开(名称字段旁边的图标)。
触发器
触发器定义事件何时被执行。这可以是对特定对象的鼠标点击、特定键盘输入、变量的变化、视频文件的开始或许多其他事情。所有触发器及其设置/参数在以下列表中进行了说明:
| 触发器类别 | 触发器选项 | 描述 |
|---|---|---|
User Input Triggers | 用户输入触发器是指任何可以通过用户/参与者手动激活的触发器,例如移动鼠标、单击键盘元素、滚动等。 | |
Physiological Signal Triggers | 生理信号触发器在特定生理输入存在时发生,例如凝视特定元素或头部移动的变化。 | |
Trial and Frame Triggers | 这些触发器与实验的实验和帧有关,例如当帧开始或结束时。 | |
Variable Value Changed Trigger | 变量(值改变) | 当特定变量值发生变化时事件的触发器。 |
Media Object Trigger | 媒体对象触发器 | 此触发器与媒体对象相关,例如视频/音频文件暂停、录音完成等。 |
API Triggers | 这些是当有来自API的传入数据时发生的触发器。 | |
Global Triggers | 全局触发器指任何对实验的重大更改,例如暂停实验或多用户研究中的参与者离开。 |
用户输入触发器
用户输入触发器是指任何可以由用户/参与者手动激活的触发器。

下表提供了Labvanced中所有用户输入触发器的简介。每个触发器将在即将到来的部分中详细描述。
| 用户输入触发器选项 | 概述 |
|---|---|
Mouse Trigger | 任何鼠标移动都可以用作触发器以启动事件,例如:滚动、点击、悬停等。您还可以将特定元素或目标与触发器关联。例如,鼠标点击将仅在点击特定图像时用作触发器。 |
Keyboard Trigger | 任何键盘按键都可以用作触发器以启动事件。您可以指定特定的字母或数字作为触发器。 |
Button-Clicks | 在Labvanced中创建的按钮对象可以用作触发器以启动事件。 |
Enter on Input | 当参与者在实验过程中按下“回车”键时,此触发器通常用于提交他们在文本框区域中的书面响应或输入。 |
Scroll Trigger | 当参与者滚动时,此触发器发生。您可以指定x轴或y轴滚动方向,以及滚动发生在什么元素上,以用作事件触发器。 |
Gamepad/ Joystick Trigger | 此触发器允许您在实验设计中使用游戏手柄和摇杆控制器作为记录数据的输入设备。 |
鼠标触发器
“鼠标触发器”选项是一个非常受欢迎的事件触发器,因为它基于任何鼠标交互来初始化事件,例如:上下移动鼠标、点击、悬停在特定对象上、离开特定对象或任何移动!

下面的例子显示了在“目标”对象“Image_1”上通过“左”鼠标点击执行“点击”时发生的“鼠标触发器”:

下面是您在使用鼠标触发器时可用选项的完整概述:
| 菜单项 | 菜单区域 | 鼠标触发器选项和规范 |
|---|---|---|
Action 下拉列表: | ![]() | 下拉列表中提供以下鼠标触发器选项:
|
Button 下拉列表: | ![]() |
|
Targets 选项: | 在上面的示例中,“Image_1”是触发事件的按钮点击目标。 通过点击底部的 ‘+Add Target’ 选项可以添加多个目标。 |
|
键盘触发器
“键盘触发器”选项是另一种流行的触发事件的方法。基本上,来自键盘的任何输入都可以用作触发器。这包括:按下、按住或释放一个键。

在下面的示例中,触发器被设置为在特定目标的数值(0、2或6)被按下时触发:

下面是您在使用键盘触发器时可用的键和选项的完整概述:
| 菜单项 | 菜单区域 | 键盘触发器选项 |
|---|---|---|
Action 下拉列表: | ![]() |
|
Keys 哪个键触发事件 | ![]() | 通过点击 +Add: 在此处指定用于触发的键
+Add: 按钮可以添加多个键盘触发器 |
| 其他选项 | ![]() | 启用小键盘按钮选项允许在实验中将小键盘键用作触发器。 对于 允许事件传播选项,如果多个事件具有相同的键盘触发器,则所有触发器将同时触发。 只有第一个事件会触发,事件执行将在第一个事件完成后停止。 |
按钮点击触发器
如果您在编辑器中放置了 按钮或导航对象,您可以将其作为事件的一部分使用,其中单击按钮作为操作的触发器。

单击此触发器会显示以下菜单,您可以在其中指定哪个特定按钮将作为触发器:

以下是所示项目的详细信息:
| 菜单项 | 菜单区域 | 按钮点击触发器选项 |
|---|---|---|
目标: +Set Target | ![]() | |
Button: 选项 | ![]() | 指定帧上哪个特定按钮 |
输入时按下回车触发器
触发条件:当特定元素处于活动状态时,按下键盘上的Enter/Return键。
参数:
添加目标:将输入元素添加到事件中。
**注意:**在事件系统中选择输入时按下Enter触发器后,您可以选择使用和引用 特定触发输入时Enter值 在各种操作中与 值选择菜单 一起使用。
滚动触发器
触发条件:在特定元素上使用滚动条、触控板滚动或鼠标滚轮。
参数:
- 选择滚动是沿Y轴还是X轴进行(垂直滚动或水平滚动)。
目标:设置滚动触发器将应用于的目标元素。
注意:对于较长文本,在“'对象属性'”面板的“样式”部分,需要将 Overflow-X 和/或 Overflow-Y 选项设置为选中scroll 作为选项。
游戏手柄/摇杆触发器
Gamepad/ Joystick Trigger 允许您在实验设计中使用游戏手柄和摇杆控制器作为录入数据的输入设备。 **注意:**请记得在 Settings 选项卡下启用此选项。
生理信号触发器
这些触发器仅在为任务启用了眼动追踪和/或头部追踪时适用。
眼动追踪注视触发器
触发条件:
- 一般而言,当启用眼动追踪时,此触发器适用。
- 仅在注视特定元素时触发
参数:
**了解更多:**查看专门的 眼动追踪注视触发器 页面,了解如何启用眼动追踪、录制注视数据和实际示例。
眼动追踪固定触发器
此触发器仍处于BETA阶段。
**了解更多:**查看专门的 眼动追踪固定触发器 页面,了解如何启用固定检测、录制固定数据和实际示例。
头部追踪触发器
触发条件:
实验和帧触发器
任务初始化触发器
触发于:
- 任务的第一次试验的第一帧。将在每个任务中仅执行一次,尽管将在事件标签中显示该帧的所有实例。
该触发器与洗牌和从中读取操作搭配使用效果良好。在这些组合中,您可以在任务开始时洗牌数组条目或数据帧,并将受试者分配到刺激集,而无需创建多个事件来读取刺激或数据。
参数:无
- 注意: 在事件系统中选择任务初始化触发器后,您可以利用并引用特定于触发器的任务初始化值,并通过值选择菜单在各种操作中使用这些值。
帧初始化触发器
触发于:
- 帧的初始化,在其变得对参与者可见之前。
该触发器与洗牌、从中读取和随机数字绘制操作搭配使用效果良好。在这些组合中,这些操作可以在帧出现之前完成,为其他操作在帧开始时提供清晰的路径。
注意: 请勿将帧初始化触发器与记录变量或涉及系统变量(例如试验编号或条件编号)的事件一起使用。这是因为帧初始化触发器发生在试验之间,因此没有关于即将显示的试验或条件的完全准确计数。
参数:无
- 注意: 在事件系统中选择帧初始化触发器后,您可以利用并引用特定于触发器的帧初始化值,并通过值选择菜单在各种操作中使用这些值。
任务和帧初始化触发器的注意事项: 因为任务和帧初始化触发器发生在任务或帧开始之前,在此期间创建的变量将在任务/帧实际开始时重置。使用此事件时会出现警告:

如果您不希望变量值被重置,请记得在变量属性窗口中取消选中“在试验开始时重置”框。
帧开始触发器
触发于:
- 帧的开始
参数:无
- 注意: 在事件系统中选择帧开始触发器后,您可以利用并引用特定于触发器的帧开始值,并通过值选择菜单在各种操作中使用这些值。
帧结束触发器
触发于:
- 帧结束(帧不再可见之后)
参数:无
- 注意: 在事件系统中选择帧结束触发器后,您可以利用并引用特定于触发器的帧结束值,并通过值选择菜单在各种操作中使用这些值。
变量值更改触发器
变量值更改
触发于:
- 变量的值从其初始值更改
参数:
变量:选择一个或多个您希望“监听”其更改的变量。这些变量的任何值变化都会立即触发相应的操作。
注意: 在事件系统中选择变量值更改触发器后,您可以利用并引用特定于触发器的变量值更改值,并通过值选择菜单在各种操作中使用这些值。
媒体对象触发器
媒体对象触发器
之前称为单独的“控制音频/视频触发器”和“控制对象”触发器。
触发于:
- 视频或音频文件的开始、暂停或停止
- 录音对象的文件上传完成、文件选择、录音完成
- 摄像机快照对象的快照完成或上传完成
参数:
目标:选择帧上存在的对象元素
执行时:选择触发器的子类型
- 音频或视频对象选项:
- 播放开始:当元素开始播放时触发
- 播放停止:当元素暂停时触发
- 播放结束:当元素停止播放时触发
- 视频、音频或屏幕录制对象选项:
- 录音完成:当音频录制停止时触发
- 上传完成:当文件上传完成时触发
- 文件上传对象选项:
- 文件选择:当选择一个文件时触发
- 上传完成:当文件上传完成时触发
- 摄像机快照对象选项:
- 快照完成:当摄像机成功拍摄快照时触发
- 上传完成:当快照上传完成时触发
- 音频或视频对象选项:
注意: 在事件系统中选择媒体对象触发器后,您可以利用并引用特定于触发器的媒体对象值,并通过值选择菜单在各种操作中使用这些值。
API 触发器
如果您需要将数据从外部服务器发送或传输到 Labvanced,则可以使用“API 触发器”和“API 操作”。以下内容可以用作触发器:
- Websocket 触发器
- OpenAI 触发器
- PostMessage 接收

Websocket 触发器
当从 websocket/API 接收到消息并将其处理为操作的触发器时,使用 Websocket 触发器。

点击此选项后,将显示以下项目。

- 接受/接收自: 自动检测本地主机的IP地址。可以在
Settings选项卡的Special Features中手动更改。 - 触发器/消息: 输入将用作触发器的消息。键入“any”以接受多个消息作为触发器。
有关如何使用 API 触发器/操作的示例,请通过点击对话框中的“检查”选项查看此演示https://www.labvanced.com/page/library/51053。
- 注意: 在事件系统中选择 WebSocket 触发器后,您可以利用并引用特定于触发器的 WebSocket 值,并通过值选择菜单在各种操作中使用这些值。
OpenAI 触发器
“OpenAI 触发器”可以用于根据来自 OpenAI 的信息启动一个操作。

选择此选项后,将显示以下参数:

注意: 还请参考此指南,在其中我们一步一步地建立研究,将 ChatGPT 集成到研究中并使用此触发器。
在下面的示例中,分配的数据显示框称为“df”,并且来自“OpenAI 触发器”的结果将附加到该数据框。该数据框需包含两列。第一列将表示“角色”,第二列将表示“聊天消息”。操作中的值将自动附加到此处链接的数据框。

如果您还在使用“发送到 OpenAI”操作,则需要在此处指示的同一数据框中使用。
- 注意: 在事件系统中选择 OpenAI 触发器后,您可以利用并引用特定于触发器的 OpenAI 值,并通过值选择菜单在各种操作中使用这些值。
PostMessage 接收触发器
PostMessage Received触发器在运行的实验通过浏览器的 postMessage API 接收到来自外部源的消息时触发。它对将实验连接到父页面、自定义应用程序或嵌入的外部网站(将数据发送到研究中的网站)非常有用。
- 注意: 在事件系统中选择 PostMessage 接收触发器后,您可以利用并引用特定于触发器的 PostMessage 接收值,并通过值选择菜单在各种操作中使用这些值。
全局触发器
全局触发器会在实验中发生重大变化时发生,即发生某种“全球性”事件,例如暂停实验或参与者离开多用户研究!以下选项被列为全局触发器:
- 暂停 / 恢复实验
- 参与者离开多用户研究

暂停/恢复实验
“暂停 / 恢复实验”触发器是一个选项,允许您根据实验暂停或恢复的情况执行事件。

选择此触发器后,会出现以下视图,您可以进一步指定触发器的性质,无论是在实验被暂停还是继续/恢复时执行:


实验暂停: 参与者暂停(退出全屏)研究。
实验继续: 参与者恢复研究。此触发器非常适合眼动追踪研究。如果参与者离开他们的虚拟下巴支架,可以用它将参与者送回到先前的试验或帧。
注意: 在事件系统中选择暂停/恢复实验触发器后,您可以在各种操作中使用和引用 trigger-specific values 和 value-select menu.
参与者离开多用户研究
如果参与者离开多用户研究,这也可以作为事件的触发器。如果参与者离开多用户研究,这会在全球范围内影响实验,因为这会阻止其他参与者继续研究。

选择此触发器后,您可以指定参与者离开多用户研究时将发生何种操作。

- 注意: 在事件系统中选择参与者离开多用户研究触发器后,您可以在各种操作中使用和引用 trigger-specific values 和 value-select menu.
操作
操作定义了在事件执行时应发生的事情。它们可以用于更改变量和对象属性、记录数据、从数组读写数据,或跳转到下一个试验或任务。通常,每个事件有几个操作。使用“ControlActions”,可以使用逻辑操作(If-Else语句)、循环、回调函数,以及在相互内嵌操作(例如在if语句中嵌套while循环)。因此,可以将事件系统视为一个图形编程环境。在此视图中,触发器充当函数调用,而操作描述功能逻辑。这种方法保证几乎可以在不使用某些程序结构/语法结构的情况下实现几乎所有的实验逻辑。
下表提供了Labvanced中可用操作的入门概述:
| 操作类别 | 操作选项 | 描述 |
|---|---|---|
Object Actions | 对象操作是指将发生在任务内存在的对象上的任何操作。 | |
Variable Actions | 任何读取或记录变量值的操作。 | |
Array Actions | 数组操作涉及选择、添加、删除、更改和打乱数组及其条目。 | |
Data Frame Operations | 这些操作与您在实验中处理.csv文件(数据框)相关。 | |
Jump Actions | 允许您通过跳转到特定部分来导航实验,以及接受和拒绝参与者部分。 | |
Control Actions | 控制操作用于执行特定事件序列,如if/then逻辑、循环(如播放重复声音或闪烁图像),以及设置动作发生时的延迟。 | |
API Actions | 指的是发送数据到API的特定API操作。 | |
Code Actions | 代码操作允许您使用JavaScript或CSS。 | |
Paste Action | 粘贴操作 | 允许您粘贴之前复制的操作。 |
对象操作
对象操作是指将发生在任务内存在的对象上的任何操作。对象操作选项有多个:
- 设置对象属性
- 控制媒体对象
- 复制对象
- 对于每个对象

设置对象属性操作
通过“设置对象属性”操作,您可以通过指定相关对象、要更改的属性以及新值来更改对象的外观。
控制媒体对象操作
之前是单独的“控制音频/视频”和“控制对象”操作。
效果:更改视频/音频元素的播放状态或更改上传/录制元素的状态。
参数:
- 目标:选择一个媒体对象
- 效果:选择一个子操作
- 音频或视频对象选项:
- 开始播放:开始播放视频/音频文件
- 停止播放:停止视频/音频文件
- 暂停播放:暂停视频/音频文件
- 跳转到时间:允许您指定以毫秒为单位的时间,以在音频/视频文件中跳转
- 静音:关闭对象的声音
- 解除静音:恢复对象的声音
- 音频、视频或屏幕录制对象选项:
- 开始录音:开始新的(音频)录音
- 停止录音:停止(音频)录音
- 开始上传:开始上传文件
- 清除录音:删除(音频)录音数据。
- 开始播放:开始播放录制的文件
- 停止播放:停止播放录制的文件
- 暂停录音:暂停对象的录音
- 恢复录音:恢复对象的录音
- 文件上传对象选项:
- 开始上传:开始所选文件的上传过程
- 清除文件:删除所选文件
- 选择文件:允许参与者选择所需文件
- 照相机快照对象选项:
- 开启相机:打开参与者的相机
- 关闭相机:关闭参与者的相机
- 开始上传:开始将快照上传到实验
- 拍摄快照:使用参与者的相机拍照
- 音频或视频对象选项:
复制对象操作
效果:复制一个对象,从而替代多个独立对象和重复事件的需求。
参数:
- 源:选择要复制的框架中的对象。
- 复制数量:输入要制作的源对象的复制数量。
- 设置新元素名称:从多个参数中选择以确定复制的名称。
- 增加后缀的名称分配:在新元素名称的末尾添加一个数字标签以区分复制。
- 动作顺序:允许您选择(从常见的动作列表中)复制将要发生的操作。选择“CurrentObject”作为目标,以将操作应用于所有复制。
对每个对象操作
效果:对同一类型的多个对象应用一个动作。
参数:
- 过滤器:选择要定位的元素类型。
- 允许附加名称过滤:输入要定位的对象名称。对于框架中多个名称相同的对象,这效果良好。
- 动作顺序:允许您选择(从常见的动作列表中)所选元素将要发生的操作。选择“CurrentObject”作为目标,以将操作应用于所有符合上述指定条件的元素。
变量操作
变量操作用于设置或创建变量值,记录和定义值,包括跨会话的值。

以下表格提供了Labvanced中所有变量操作选项的介绍性概述。每个选项在后续部分将详细描述。
| 变量操作选项 | 描述 |
|---|---|
Set / Record Variable | 写入或设置变量值 |
Copy to Clipboard | 将变量值复制到计算机的内部剪贴板。 |
Draw Random Number | 绘制一个或多个随机数并将其保存到变量中 |
Get URL Parameter | 保存参与者唯一URL中的值 |
Read from / Write to Device | 从本地设备的存储中读写变量。此动作将数据保存到参与者的设备,而不是将数据发送到Labvanced服务器。 |
Read from / Write to Shared Variable | 从会话共享的变量中读写。该变量可以与所有参与者共享或针对每个个人私有。 |
Math & Statistics | 对某个输入变量(数组)执行数学运算,并将结果保存在输出变量中。 |
Record Variables Instantly | 创建所有变量值的快照并将其发送到Labvanced服务器。 |
Moving Average Filter | 计算某些输入的移动平均值(数据的不断更新平均)并将结果存储在新变量中。 |
Distribute Variable | 将一个值发送给其他参与者。该值存储在一个变量中。 |
设置/记录变量操作
“设置/记录变量”操作将在Labvanced中的每个实验中使用,因为它是存储和记录值及行为测量的方式。

单击此操作后,将出现以下对话菜单,您可以在其中指定哪个变量应被记录以及所关心的值:

| 菜单项 | 菜单区域 | 描述 |
|---|---|---|
Select | ![]() | 单击选择后,您指示哪个变量应存储该值。在此,您还可以创建新变量。 |
| 钢笔图标 | 钢笔图标象征着值选择菜单,用于定义和指定应分配给所选变量的确切值(如绿色按钮所指定的等号(=)左侧)。 |
在下面的示例中,我们创建了一个名为counter的新变量,并使用值选择菜单的算术选项使变量值增加1(基于先前步骤中定义的触发器)。

下面的图像记录鼠标X、Y坐标,以捕捉研究过程中的鼠标追踪。下面的图像显示了如何使用三个操作来实现变量值记录。左侧的变量是手动创建的,而等号(=)右侧的值是系统提供的鼠标触发特定值,在记录值时可以使用。

注意: Set / Record Variable操作通常在Control Actions的上下文中使用,您可以根据变量值指定使用“如果/那么”和“当循环”的条件。
复制到剪贴板操作
效果:将变量值复制到计算机的内部剪贴板。
绘制随机数操作
效果:绘制一个或多个随机数并将其保存到变量中。
参数:
- 类型:选择连续值和离散值之间。
- 分布:选择高斯分布和均匀分布之间。
- 多次绘制(布尔值真/假):选择绘制一次或多次。
- 绘制数量:选择绘制的次数。
- 最小值:定义均匀分布的最小值。
- 最大值:定义均匀分布的最大值。
- 均值:定义高斯分布的均值。
- 标准偏差:定义高斯分布的标准偏差。
- 保存在变量中:选择一个变量,以存储值。
获取URL参数操作
效果:从参与者的唯一URL中保存一个值。
参数:
- 参数名称:输入所需参数的名称。
- 保存在变量中:选择要保存参数值的变量。
此操作可以与其他操作结合使用,为参与者构建唯一的URL或提取数据分析所需的信息。
从/写入设备操作
效果:从本地设备的存储中读写变量。此操作将数据保存到参与者的设备,而不是将数据发送到Labvanced服务器。
参数:
- 选择从本地设备读取或写入。
- 选择要读取或写入的变量。
用例:纵向/多会话研究
- 有了此操作,特定设备的数据可以从会话中传递到下一个会话,只要同一参与者在每次会话中使用相同的设备。
- 例如,您可以使用此操作记录在第一次会话中向每个参与者呈现了哪些图像,并确保在第二次会话中向他们呈现不同的图像。
- 创建一个图像数组,并随机选择一些在每个会话中呈现。
- 写入设备:在第一次会话中呈现的图像的索引编号。
- 从设备读取:在第二次会话中,读取第一次会话中的图像索引,并包括一个JavaScript操作,以防止选择这些索引用于第二次会话。
从/写入共享变量操作
效果:从会话共享的变量中读写。该变量可以与所有参与者共享或针对每个个人私有。
参数:
- 选择要同步的变量。必须是标量或数组。
- 高级选项
- 存储键:选择一个变量名称作为访问同步变量的键。
- 读取或写入方法:
- 读取、修改然后写入共享变量:读取变量,进行更改,然后将变量发送到研究中。
- 仅从服务器读取共享值:调用在研究中共享但不进行更改的变量。
- 仅将变量写入服务器:对共享变量进行更改,但不向参与者显示。
- 在不同参与者之间共享值(不仅限于会话):允许参与者查看在会话中彼此同步的变量值。此选项默认选中,但可以通过单击复选框取消选择。
- 动作顺序:
- 从所有可用操作的列表中选择对共享/同步变量将要发生的操作。
使用案例:纵向/多会话研究
- 通过此操作,可以将特定参与者的数据从一个会话带入下一个会话,并可以在会话之间共享这些数据。
- 例如,您可以使用此操作记录一次测试的分数,然后允许参与者将他们的分数与完成测试的其他参与者的平均分数进行比较。
- 另一个示例(类似于从设备读取/写入操作)是让参与者从一组中选择5张他们喜欢的图片,执行一个任务,然后在后面的会话中再次呈现这5张图片。不同之处在于,这个操作可以用来向其他参与者展示被选择的图片,或者将这些图片排除在另一位参与者可用选项之外。
数学与统计操作
效果:对某个输入变量(数组)执行数学运算,并将结果保存在输出变量中。
参数:
- 类型:选择数组操作、线性代数和统计测试
- 操作:选择一个数学运算(例如,求和、最小值、标准差等)
- 输入数组:选择要执行操作的输入变量(数组)
- 参数:某些操作具有额外参数。
- 输出:选择一个输出变量以存储结果。
即时记录变量操作
效果:创建所有变量值的快照,并将其发送到Labvanced服务器。
参数:无
移动平均滤波器操作
效果:计算某个输入的移动平均(数据的不断更新的平均值),并将结果存储在新变量中。
参数:
- 滤波器形状:选择滤波器类型
- 简单移动平均:计算简单的移动平均,所有样本具有相同的权重。
- 线性加权移动平均:对样本进行加权,使样本的权重线性减少。
- 指数移动平均:对样本进行加权,使样本的权重指数减少。
- 样本数:确定每个步骤使用多少样本。
- 输入:选择一个输入变量(数组),以计算移动平均
- 输出:选择一个输出变量以存储结果。
分发变量操作
分发变量操作在Labvanced的多用户研究中至关重要。通过此操作,可以在参与者之间共享变量值,从而使信息(包括刺激位置和任何更改)能够在参与者的屏幕上反映出来。有关此操作的专门演练,请查看分发变量操作。

在选择此操作后,将出现以下对话框,您可以指定在参与者之间分发的变量值。
下图显示了当所有菜单项填写完毕时,功能性分发变量操作对话框的样子。在此示例中,分发变量是用于通过分发输入字段对象的变量值在两个参与者之间创建聊天的操作。

查看这个结合了分发变量和聊天框功能的演示:带聊天附加功能的图像描述任务。
对话框菜单项的完整说明如下:
| 菜单项 | 菜单区域 | 分发变量操作选项和说明 |
|---|---|---|
Distribute value to | ![]() | 选择此值应发送给哪些其他参与者。
|
Choose target variable and value | ![]() |
|
Block | ![]() | 如果启用,目标变量在当前值分配完成之前无法更改。 |
Rate Limit Strategy | ![]() | 速率限制策略是一种保护您的实验免受服务器过载的方法,并作为控制请求(例如,通过分发变量进行的更新)发送到服务器的速率的预防策略。以下策略选项可用:
|
数组操作
从数组中选择(读取)操作
效果:将从数组中读取一个变量,并将该值存储在标量变量中。
参数:
- 数组变量:用于读取值的输入数组。
- 索引类型:确定使用何种类型的索引。
- 固定:为读取操作使用固定索引。在这种情况下,输入从何处读取信息的位置(从1开始)。
- 变量:使用一个数值变量作为读取操作的索引。在这种情况下,选择一个标量数值变量以确定读取的位置。
- 数组末尾:从数组的末尾读取。
- 输出变量:选择一个标量变量,存储读取值。
添加/删除数组条目操作
效果:将条目添加到/从数组中删除。
参数:
- 数组变量:应执行添加或删除操作的数组变量。
- 索引类型:确定使用何种类型的索引。
- 固定:为插入/删除操作使用固定索引。在这种情况下,输入条目应插入/删除的位置(从1开始)。
- 变量:使用一个数值变量作为插入/删除操作的索引。在这种情况下,选择一个标量数值变量以确定条目应插入/删除的位置。
- 数组末尾:从数组的末尾插入/删除。
- 要删除的条目数:将在定义的索引位置开始删除数组条目(在插入新条目之前)。0表示不删除任何值。
- 要插入的变量:选择一个或多个标量变量,这些变量将在定义的索引位置添加到数组变量中。
更改(替换)数组条目操作
效果:将在数组中替换/更改一个值。
参数:
- 数组变量:应修改其中一个值的数组变量
- 索引类型:确定使用何种类型的索引。
- 固定:为替换操作使用固定索引。在这种情况下,输入应更改的数组位置(从1开始)。
- 变量:使用一个数值变量作为替换操作的索引。在这种情况下,选择一个标量数值变量以确定替换操作的位置。
- 数组末尾:替换数组中的最后一项。
- 输入变量:选择一个(标量)变量,该变量保存新值。
洗牌数组条目操作
效果:将重新洗牌数组中的条目/顺序。
参数:无
数据框操作
从/写入数据框操作
效果:从数据框中读取值或向数据框写入值,并将其保存在一个新数组变量中。
参数:
- 数据框变量:选择要读取的数据框的变量。
- 读取或写入:选择从选定的数据框读取或向选定的数据框写入。
- 按行或列:选择如何读取数据。
- 索引类型:选择将用于读取数据框的索引变量类型。可以是固定的、变量的或最后一行。
- 索引变量:选择将用作索引以读取数据框的变量。
- 输出变量:选择将读取/写入的数据存储为输出的变量。必须是数组变量。
洗牌数据框条目操作
效果:洗牌数据框中的条目顺序。
参数:
- 选择要洗牌的数据框。
- 选择数据框是按行还是按列进行洗牌。
跳转动作
跳转到动作
效果:“跳转”参与者到实验中的不同步骤。此动作可以改变实验中试验和任务的顺序,并可用于为每位参与者创建个性化的实验逻辑。
参数:
- 跳转到:确定在实验中跳转到哪里。
- 下一个帧:跳转到下一个帧。如果在一个试验中没有更多定义的帧,它将跳转到下一个试验的第一帧。
- 下一个试验:跳转到下一个试验。如果没有更多定义的试验,它将跳转到下一个任务的第一试验。
- 下一个任务:跳转到下一个任务。如果没有更多定义的任务,它将跳转到下一个区块的第一任务。
- 下一个区块:跳转到下一个区块。如果没有更多定义的区块,实验将结束。
- 上一个帧:跳转到上一个帧。如果没有上一个帧,则该动作将不会被执行。
- 特定帧:跳转到特定帧。用户直接选择要跳转的帧。
- 特定试验:跳转到特定试验。用户直接选择要跳转的试验编号。
- 特定任务:跳转到当前区块中指定任务的第一实例。用户直接选择要跳转的任务。
- 特定区块:跳转到指定区块的第一实例。用户直接选择要跳转的区块。
- 在跳转前检查所需答案:如果启用,实验将检查所有所需答案是否已被回答。如果没有,则不会执行跳转动作。
接受/结束会话动作
效果:接受参与者的数据,结束录制会话,并显示众包代码。
参数:
- 在结束会话前记录试验数据:如果启用,最近的试验数据将在退出研究之前被存储(发送到服务器)。
- 显示默认结束页面:如果启用,默认的 Labvanced 结束屏幕将出现。如果这是一个众包会话(使用了众包链接),补偿代码将显示给参与者。如果禁用,则实验将在显示当前帧后结束,并且不会显示带有补偿代码的默认结束屏幕。
拒绝/结束会话动作
效果:结束录制会话,不会将参与者的数据标记为完整,并且不会显示带有补偿代码的默认结束屏幕。
在使用此动作拒绝参与者的数据时,用户应向参与者显示适当的消息,解释他们为何不会因自己的时间而获得奖励。
参数:无
重定向到 URL 动作
效果:将参与者重定向到特定的 URL。
注意:URL 开头必须包含 https:// 才能使此动作生效。
控制动作
需求动作(如果... 那么... 否则如果)动作
效果:评估如果-那么语句并根据条件执行一系列动作。每个如果/否则如果语句由嵌套的 AND / OR 比较组成,用于评估所有要求是否满足(语句为真)或不满足(语句为假)。如果语句为真,则执行“那么”下的动作。请参见 需求动作 以获取此动作的专门讲解,包括一个已完成的 Role_Id 示例。
参数:
- 添加需求:向语句添加一个新需求。“值选择”菜单将在两侧出现,以进行逻辑比较。在语句的中间,您可以选择如何进行两侧的比较(例如相等、小于、不相等等)。
- 添加 OR 组:OR 组中的所有需求只需一个为真,整个组即为真。如果子动作应该在多种情况下执行,请添加 OR 组。
- 添加 AND 组:AND 组中的所有需求都必须为真,整个组才为真。如果子动作仅在满足多个需求时执行,请添加 AND 组。
- 动作序列:每个如果 / 否则如果语句都有一个动作列表,这些动作在“那么”下定义。动作序列列出特定如果 / 否则如果语句的所有动作。可以通过“添加动作”图标添加新动作。只有在关联的如果 / 否则如果语句的要求满足时,动作序列才会被执行。
- 添加 Else-If 情形:需求动作可以由多个独立的如果 / 否则如果 --> 然后语句组成。然而,只有一个语句可以被执行。如果一个如果 / 否则如果语句被积极评估(返回为真),则会执行 Then 块中的动作,其余的需求动作将被跳过。
- 添加 Else 情形(真 / 假):如果启用,则向需求动作添加一个默认/后备选项。如果没有执行任何如果 / 否则如果语句(返回为真),将执行在 else 情形中定义的动作。
重复动作(While Loop)动作
效果:重复执行一系列动作,可以立即执行或在定义的间隔内执行。可以指定停止条件,以便停止循环执行。
参数:
- 执行类型:选择立即执行或定时执行
- 执行完整循环:这将持续执行循环,直到满足停止条件。
- 每...毫秒执行:这将在定义的间隔内执行循环(例如,该循环每 50 毫秒执行一次)。
- 定义循环次数:当选择“每...毫秒执行”时,用户可以为循环应执行的次数分配一个整数值。这替代了定义停止条件的需要。
- 执行间隔:这决定了执行间隔。
- 立即开始(真 / 假):如果启用,则会立即执行循环。如果禁用,则循环将在下一个执行间隔开始。
- 允许多个开始(真 / 假):如果启用,可以并行启动多个循环实例。如果禁用,则只能一次执行一个循环实例。
- 启用停止条件(真 / 假):如果启用,可以指定循环的停止条件。
- 停止条件:停止条件可以用于指定何时应停止循环执行的逻辑表达式。类似于如果 / 否则如果语句,可以将 AND 组、OR 组和需求组合以进行逻辑比较。
- 动作序列:动作序列列出在每次循环迭代时执行的所有动作。可以通过“添加动作”图标添加新动作。
延迟动作(时间回调)动作
效果:在一定时间延迟后执行一系列动作。
参数:
- 延迟类型:选择固定延迟或可变延迟
- 固定延迟:动作将在固定延迟后执行。
- 可变延迟:动作将在指定的(数值)变量延迟后执行。
- 延迟:延迟的长度,以毫秒(ms)为单位。
- 动作序列:动作序列列出在指定时间延迟后执行的所有动作。可以通过“添加动作”图标添加新动作。
动作组
动作也可以被组织成动作组。动作组允许您将某些动作组合在一起,以获得更简单的视觉结构,以及便于同时复制、重复或删除多个动作。
API 动作
如果您需要将数据从外部服务器发送或传输到 Labvanced,则可以使用“API 动作”和 “API 触发器”。您在此类别下可用的行动如下:
- 发送 PostMessage
- 发送至 Websocket
- 发送至 OpenAI
为了使这些动作“可用”或可使用,您必须在 Settings 选项卡下输入 API 密钥。

发送 PostMessage 动作
Send PostMessage 动作使用浏览器的 postMessage API 从正在运行的 Labvanced 实验向外部目标(例如父网页或嵌入框架)发送消息。
发送至 Websocket 动作

选择此动作时,会出现以下选项:

上面的示例和完整事件结构可以通过点击“检查”访问 https://www.labvanced.com/page/library/51053。
| 菜单项 | 描述 |
|---|---|
| 发送至: | 指定在 Settings 选项卡中列出的 Websocket 地址。 |
| 触发器 / 要发送的消息: | 指定您希望发送的触发器或消息。 |
| 发送变量(可选): | 指示也可以作为动作的一部分发送的变量。 |
发送至 OpenAI 动作
“发送至 OpenAI”动作允许您将信息,例如字符串输入值,发送给 OpenAI。请注意,要使用此选项,您必须在 Settings 选项卡下列出您的 API 密钥。

单击此事件后,将出现以下选项:

下面是当提供所有必要信息时,此事件的功能示例:

为了更好地理解如何利用此功能并查看其在实际中的应用,请随时通过提交此联系表单与我们联系以获得演示。
注意: 还请参考此指南,我们在其中逐步构建一个研究,整合ChatGPT并利用此操作。
以下是对“发送到OpenAI”操作下包含字段的更深入解释:
| 菜单项 | 菜单区域 | “发送到OpenAI”操作选项 |
|---|---|---|
Model Type | ![]() | |
Chat History Dataframe | ![]() | 链接到具有两列的数据框。第一列表示“角色”,第二列表示“聊天信息”。来自操作的值将自动附加到此处链接的数据框。 数据框也可以通过数据框操作进行操作。有关进一步参考,请查看OpenAI的文档。 |
Insert Message ‘+’ | ![]() | 单击此项时,将出现变量对话框。您需要指明哪个“变量”值被发送到OpenAI以及相关消息的“角色”:
|
由于OpenAI日新月异,有关进一步澄清,请查看OpenAI的文档。
代码操作
在某些情况下,您的实验可能需要您使用自定义代码。通过这些操作,您可以实现这一点!“代码操作”菜单下提供以下选项:
- 运行JavaScript
- 设置全局CSS

运行JavaScript操作
“运行JavaScript”操作允许您编程特定事件,并通过输入将在触发后作为操作运行的自定义JavaScript来读取/设置Labvanced变量。

当选择上述“运行JavaScript”操作时,您将看到一个区域(代码编辑器),在该区域中应编写JavaScript代码,以及有关如何使用它的说明:

设置全局CSS操作
利用“设置全局CSS”操作,您可以使用自定义CSS代码在触发时更改研究的某个方面。

单击此操作后,将打开以下字段:

使用“设置全局CSS”操作的一个示例是在参与者从多项选择问题中选择特定颜色时更改研究的背景颜色。
粘贴操作
此选项允许您粘贴您以前创建和复制的操作。它使您在设计实验时可以更快地工作,以便您不必一遍又一遍地选择相同的项目。例如,如果您有一个与已存在的事件类似的事件,您可以仅复制它,粘贴它并修改,而不是从头开始构建。
值选择菜单
在处理某些事件时,您会注意到出现一个笔图标。这称为值选择菜单,因为它允许您选择并指示要记录或跟踪的值类型。这是您在实验设计和设置中必然会使用的一个非常强大而重要的选项。
此笔图标 / 值选择菜单出现在事件系统的某些操作的各个位置,例如设置/记录变量操作、设置对象属性操作和要求(如果...则)操作,如下所示。

单击笔图标会出现一个下拉菜单,您可以在其中指定要读取或写入的值。下拉菜单将始终以列出特定于触发器的值选项开始,然后继续到其他五类(当前时间、常量值、变量、帧/任务/选项和操作),每个类都有其自己的选项。 这些将在下面进一步描述。

上面的图像展示了在使用鼠标触发器时值选择菜单的样子。如您所见,左侧的第一个菜单项以特定于触发器的类别开始,然后转向其他五类(当前时间等)。
菜单选项
下面的表格进一步解释了类别和选项:
| 分类 | 选项 | 描述 |
|---|---|---|
Trigger-specific | 取决于您之前为事件选择的触发器类型。 | 根据您为事件选择的触发器,值选择菜单顶部将会出现特定的选项列表供您选择。请参阅有关特定于触发器的值的部分以查看完整的选项列表和描述。 |
Current Time | 测量并调用时间值。 | |
Constant Value |
| 根据您需要的变量类型(如字符串或数值)分配常量值。这些有时与其他选项结合使用,例如 Arithmetic 以创建计数器。 |
Variable |
| 指定或引用变量或从数组或数据框中选择值。 |
Frame / Task / Object |
| 允许您提取与对象属性、帧、眼动追踪(如果启用了)和设备(屏幕刷新率)相关的值。 |
Operations |
| 使用操作对您的变量执行指定的更改,例如组合变量值、将字符串转换为小写或进行数学操作。 |
当前时间值
使用“当前时间”选项,您可以记录或引用与时间相关的值。
提供以下选项:
当前时间:UNIX时间戳
此值以毫秒捕获UNIX格式的时间戳。
当前时间:从帧开始的时间
此值捕获从帧开始经过的时间。通常,这等同于反应时间。
常量值
根据所需的变量类型(如字符串或数值)分配常量值。这些常量有时与其他选项结合使用,如 Arithmetic,以创建计数器。
以下选项可用:
常量:字符串
分配字符串/文本值。
常量:数值
分配数值/数字值。
常量:布尔值
分配 true 或 false 的值。
常量:分类
分配等级值(主要用于因子)。
常量:日期
分配日期值。
常量:时间
分配时间值。
常量:颜色
分配颜色(十六进制字符串)值。
变量值
指定或引用变量,或从数组或数据框中选择值。以下选项可用:
选择变量
允许您选择并指向变量。
从数组中选择值
允许您从数组中选择值。
从数据框中选择值
允许您从创建的数据框中选择值。
框架/任务/对象值
允许您获取与对象属性、帧、眼动追踪(如果已激活)和设备(屏幕刷新率)相关联的值。
对象属性
读取对象属性。
框架
| 框架值选项 | 描述 |
|---|---|
Last cached Mouse X Position | 参与者鼠标的最后 X 坐标值。 |
Last cached Mouse Y Position | 参与者鼠标的最后 Y 坐标值。 |
Last cached Mouse [X,Y] Array | 参与者鼠标的最后 [X,Y] 坐标值,采用数组格式。 |
Frame Name | 框架的名称。 |
眼动追踪
| 眼动追踪值选项 | 描述 |
|---|---|
Last cached Coordinate X | 参与者注视的最后 X 坐标值。 |
Last cached Coordinate Y | 参与者注视的最后 Y 坐标值。 |
Last cached Coordinate [X,Y] Array | 参与者注视的最后 [X,Y] 坐标值,采用数组格式。 |
Last cached Coordinate + Time [X,Y,T] Array | 参与者注视的最后 [X,Y] 坐标值,加上摄像头捕获 T 值,以数组格式。 |
设备
- 刷新率: 参与者设备的刷新率值。
操作
使用操作对变量执行指定的更改,例如合并变量值、转换字符串以使其全部为小写,或运行数学操作。
以下选项可用:
算术
算术操作对许多不同的目的都有用,包括合并字符串甚至修改对象属性。

从本质上讲,算术操作允许您对多个值执行操作。
选择此选项后,除了出现一个额外的笔图标(即值选择菜单)外,还将出现一系列操作,例如添加。

可以通过使用以下 5 种不同的操作来操作值:
- (+) 加法
- (-) 减法
- (/) 除法
- (*) 乘法
- (%) 取模
下面的示例展示了如何利用算术操作创建一个新的字符串变量(在绿色按钮中),称为 'intermediateVar'。

新的变量值('intermediateVar')是通过将几个算术操作与先前创建的变量(即 'userChatName' 和 'chatInput')结合,以及与 常量字符串值, 即分号 : 和断行空格 <br> 一起定义的。此操作创建了可以在多用户研究中使用的用户聊天效果。
字符串操作
| 字符串操作选项 | 描述 |
|---|---|
To Lowercase | 将字符串变量中的所有字母转换为小写。 → 例: (AAABBB) 变为 (aaabbb) |
To Uppercase | 将字符串变量中的所有字母转换为大写。 → 例: (aaabbb) 变为 (AAABBB) |
To Link | 将变量中的字符串转换为可以在另一个窗口中打开的 URL |
Remove Whitespaces | 删除字符串变量中字母之间的所有空格。 → 例: (aaa bbbb cccc) 变为 (aaabbbbccc) |
Trim Whitespaces | 删除字符串变量开头的空格。 → 例: ( aaabbbcccc) 变为 (aaabbbcccc) |
Replace Substring Regexp | 替换字符串值变量中的某些字母。 → 例: (aaabbbccc) 将 bbb 替换为 xxx,其值变为 (aaaxxxccc) |
数学操作
对标量值执行数学操作。
| 数学操作选项 | 描述 |
|---|---|
abs | 返回值的绝对数。 |
sqrt | 返回值的平方根。 |
round | 返回舍入值,保留 0 到 3 位小数。 |
floor | 返回向下取整值。 |
ceil | 返回向上取整值。 |
cos | 返回余弦值。 |
sin | 返回正弦值。 |
tan | 返回正切值。 |
触发器特定值
触发器特定值是指与特定事件中定义的触发器相关联的值。例如,如果您的事件使用鼠标触发器,则在某些指定操作的区域下(例如,在使用 Set / Record Variable 动作或 Set Object Property 动作时),您可以在 值选择菜单 中引用鼠标触发器特定值。
在下面的示例中,使用与鼠标触发器相关的值来记录 x 和 y 值及一个 [X,Y] 数组,使用 Set / Record Variable 动作。

以下是 Labvanced 中可以找到的所有触发器特定值类型的表格,后面是对每个选项的详细解释。
| 名称 | 值选项 - 概述 |
|---|---|
Trigger (Mouse) |
|
Trigger (Keyboard) |
|
Trigger (Button Bar) |
|
Trigger (Enter On Input) |
|
Trigger (Scroll) |
|
Trigger (Gamepad/ Joystick) |
|
Trigger (Eyetracking Gaze) |
|
Trigger (Eyetracking Fixation) |
|
Trigger (Head Tracking) |
|
Trigger (On Task Initialization) |
|
Trigger (On Frame Init) |
|
Trigger (on Frame Start) |
|
Trigger (On Frame End) |
|
Trigger (Variable Value Changed) |
|
Trigger (Media Object Trigger) |
|
Trigger (Websocket Trigger) |
|
Trigger (OpenAI Trigger) |
|
Trigger (PostMessage Received) |
|
Trigger (Global Experiment Event) |
|
Trigger (User Leaves Experiment) |
|
触发器(鼠标)值
当使用鼠标触发器时,以下特定触发值可以在执行某些操作时调用:

| 触发器(鼠标)选项 | 描述 |
|---|---|
Mouse X | 返回当前框架坐标中的鼠标 X 位置。 |
Mouse Y | 返回当前框架坐标中的鼠标 Y 位置。 |
Mouse [X,Y] Array | 鼠标[X,Y]坐标的数组格式。 |
Stimulus Name | 触发事件的对象名称(例如,单击了哪个图像)。 |
Stimulus Info | 触发事件的对象的刺激信息。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到触发发生的经过时间,以毫秒为单位。 |
触发器(键盘)值
当使用键盘触发器时,以下特定触发值可以在执行某些操作时调用:
| 触发器(键盘)选项 | 描述 |
|---|---|
Id of Key | 作为触发器按下的键的 ID 值。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到触发发生的经过时间,以毫秒为单位。 |
触发器(按钮栏)值
当使用按钮点击触发器时,以下特定触发值可以在执行某些操作时调用:
| 触发器(按钮栏)选项 | 描述 |
|---|---|
Stimulus Name | 触发事件的按钮对象名称。 |
Stimulus Info | 触发事件的按钮对象的刺激信息。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到触发发生的经过时间,以毫秒为单位。 |
触发器(输入时回车)值
当使用输入时回车触发器时,以下特定触发值可以在执行某些操作时调用:
| 触发器(输入时回车)选项 | 描述 |
|---|---|
Id of Key | 作为触发器按下的键的 ID 值。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到触发发生的经过时间,以毫秒为单位。 |
触发器(滚动)值
当使用滚动触发器时,以下特定触发值可以在执行某些操作时调用:
| 触发器(滚动)选项 | 描述 |
|---|---|
Stimulus Name | 触发事件的按钮对象名称。 |
Stimulus Info | 触发事件的按钮对象的刺激信息。 |
Scroll Position X | 事件触发时鼠标的 X 滚动位置。 |
Scroll Position Y | 事件触发时鼠标的 Y 滚动位置。 |
Trigger Timestamp (Unixtime) | 滚动触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到滚动触发发生的经过时间,以毫秒为单位。 |
触发器(游戏手柄/操纵杆)值
当使用Gamepad/Joystick trigger时,以下特定触发值可以在执行某些操作时调用:

| 触发器(游戏手柄/操纵杆)选项 | 描述 |
|---|---|
Gamepad Device Id | 连接的游戏手柄的 ID 或名称。 |
Pressed Keys (Array) | 按下的键。 |
Pressed OR Hold Keys (Array) | 按下或保持的键。 |
Released Keys (Array) | 释放的键。 |
Axes (Array) | 轴的值。 |
Gamepad Timestamp (Unixtime) | 游戏手柄时间戳,以Unix时间表示。 |
Trigger Timestamp (Unixtime) | 触发时间发生的时间戳,以Unix时间表示。 |
Trigger Time (From Frame Onset) | 触发发生时与帧开始关系的Unix时间戳。 |
触发器(眼动追踪凝视)值
当使用眼动追踪凝视触发器时,以下特定触发值可以在执行某些操作时调用:

| 触发器 (眼动追踪凝视) 选项 | 描述 |
|---|---|
Coordinate X | 凝视的 X 坐标值。 |
Coordinate Y | 凝视的 Y 坐标值。 |
Coordinate [X,Y] Array | 凝视坐标 X,Y 的数组格式。 |
Stimulus Name | 发起凝视触发的刺激的名称。 |
Stimulus Info | 发起凝视触发的刺激背后的刺激信息。 |
Camera Capture Time T | 快照发生的确切时间。在 Labvanced 的眼动追踪流程中,摄像机快照首先发生,然后算法和神经网络执行凝视计算。因此,Camera Capture Time T 是最初快照发生的 UNIX 时间戳。有关基于网络摄像头的眼动追踪技术的更多信息,请参考我们的ET技术页面. |
Gaze Confidence C | 此值范围从 0 到 1,表示图像快照中有一个睁开的眼睛的信心和概率,本质上作为“眨眼检测器”。有关更多详细信息,请参见我们已发表的同行评审论文。 |
Coord. + Time [X,Y,T] Array | 一个数组,包含凝视的 x/y 坐标和相机捕获时间的时间戳 (T),如上所述。 |
Coord. + Time + Confidence [X,Y, T,C] Array | 一个数组,包含凝视的 x/y 坐标、相机捕获时间的时间戳 (T) 和凝视信心 (C),如上所述。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到凝视触发发生的经过时间,以毫秒为单位。 |
了解更多: 请参见专门的眼动追踪凝视触发器页面,以启用眼动追踪、记录凝视数据和实际示例。
触发器(眼动追踪定点)值
当使用眼动追踪定点触发器时,以下特定触发值可以在执行某些操作时调用:
| 触发器 (眼动追踪定点) 选项 | 描述 |
|---|---|
Fixation Centroid X | 定点的中心点作为X值。 |
Fixation Centroid Y | 定点的中心点作为Y值。 |
Fixation Duration | 检测到的定点持续时间。 |
Fixation Start Time | 检测到的定点开始时间。 |
Fixation End Time | 检测到的定点结束时间。 |
Fixation Dispersion | 指的是在检测到的定点内凝视值的分散程度。 |
Stimulus Name | 触发事件的按钮对象名称。 |
Stimulus Info | 触发事件的按钮对象的刺激信息。 |
[X, Y, Dur, Start, End, Disp] | 数组,包含以下内容:定点重心的x和y值、定点持续时间、开始时间、结束时间和分散值。 |
Trigger Timestamp (Unixtime) | 触发发生时的时间戳,以Unix时间格式表示,单位为毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到定点触发发生的经过时间,以毫秒为单位。 |
了解更多: 请查看专门的 Eyetracking Fixation Trigger 页面,以启用注视检测、记录注视数据和实用示例。
触发器(头部追踪)值
当使用 头部追踪触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器 (头部 追踪) 选项 | 描述 |
|---|---|
Camera Capture Time T | 当相机捕获帧时,即帧捕获发生的 Unix 时间戳。这是图像/帧捕获的时间,发生在任何处理之前。 |
Facemesh Dataframe | 包含由面部网格模型检测到的 468 个面部特征关键点的数据帧。每一行表示一个关键点及其在标准化帧空间中的 x、y 和 z 坐标。使用此值访问每帧的详细面部几何形状,例如嘴唇、眼睛或下巴特征。 |
Head Turn | 头部从左到右转动,这在文献中称为偏航。 |
Head Tilt | 头部从上到下倾斜,在文献中称为俯仰。 |
Head Roll | 捕捉头部左右滚动的运动。 |
Head Position [X,Y, T] Array | 此数组捕获与头部位置相关的数值,包括头部中心的 x 和 y 坐标以及时间戳变量(T)。 |
Nose Position [X,Y, T] Array | 此数组捕获与鼻子位置相关的数值,包括鼻子位置的 x 和 y 坐标,以及测量发生时的时间戳变量(T)。 |
Nose Vector [X,Y, Z, T] Array | 此测量通过从鼻尖投影一个向量工作,对于测试参与者是否关注屏幕很有用(这对于未启用眼动追踪的研究尤其重要)。因此,如果鼻子指向屏幕外(即参与者未关注实验),则 Z 值从 1 减少并接近 0。 |
Trigger Timestamp (Unixtime) | 实验过程中触发器本身发生的时间点,在系统中记录头部追踪被检测到的时间。实质上,这是处理图像/帧的时间,此值在很大程度上受参与者显卡的影响。从理论上讲,它应该尽可能接近值 T。 |
Trigger Time from Frame Onset | 这是触发器发生时与帧开始时刻的时间值。 |
触发器(任务初始化时)值
当使用 任务初始化触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(任务初始化时)选项 | 描述 |
|---|---|
Trigger Timestamp (Unixtime) | 触发器发生的 Unix 时间戳,以毫秒为单位。 |
Trigger Time (From Frame Onset) | 从帧开始时触发器发生的时间,以毫秒为单位。 |
触发器(帧初始化时)值
当使用 帧初始化触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(帧初始化时)选项 | 描述 |
|---|---|
TrialNr | 帧初始化触发器发生时的试验编号。 |
Trigger Timestamp (Unixtime) | 触发器发生的 Unix 时间戳,以毫秒为单位。 |
Trigger Time (From Frame Onset) | 从帧开始时触发器发生的时间,以毫秒为单位。 |
触发器(帧开始时)值
当使用 帧开始触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(帧开始时)选项 | 描述 |
|---|---|
Trigger Timestamp (Unixtime) | 触发器发生的 Unix 时间戳,以毫秒为单位。 |
Trigger Time (From Frame Onset) | 从帧开始时触发器发生的时间,以毫秒为单位。 |
触发器(帧结束时)值
当使用 帧结束触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(帧结束时)选项 | 描述 |
|---|---|
Total Frame Time | 在帧上花费的总时间,以毫秒为单位。 |
Trigger Timestamp (Unixtime) | 触发器发生的 Unix 时间戳,以毫秒为单位。 |
Trigger Time (From Frame Onset) | 从帧开始时触发器发生的时间,以毫秒为单位。 |
触发器(变量值更改)值
当使用 变量值更改触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(变量值更改)选项 | 描述 |
|---|---|
New Value in Variable | 指的是变量的新值。 |
Trigger Timestamp (Unixtime) | 变量变化触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到变量值变化发生的经过时间,以毫秒为单位。 |
触发器(媒体对象触发器)值
当使用 媒体对象触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(媒体对象触发器)选项 | 描述 |
|---|---|
Trigger Timestamp (Unixtime) | 媒体对象触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到媒体对象触发器发生的经过时间,以毫秒为单位。 |
触发器(Websocket 触发器)值
当使用 WebsSocket 触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(Websocket 触发器)选项 | 描述 |
|---|---|
Message | 可用于描述和标记的消息,允许您(在接收端)在不同类型的数据之间进行过滤。 |
Data | 可以持有不同类型数据的值,例如参与者的选择、时间戳、鼠标 x/y 坐标等。 |
Trigger Timestamp (Unixtime) | Websocket 触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到 WebSocket 触发器发生的经过时间,以毫秒为单位。 |
触发器(OpenAI 触发器)值
当使用 OpenAI 触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(OpenAI 触发器)选项 | 描述 |
|---|---|
Chat GPT Answer | 来自 ChatGPT 的答案值。 |
Trigger Timestamp (Unixtime) | OpenAI 触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到 OpenAI 触发器发生的经过时间,以毫秒为单位。 |
触发器(收到 PostMessage)值
当使用 收到 PostMessage 触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(收到 PostMessage)选项 | 描述 |
|---|---|
Message Content | 收到的 postMessage 的数据负载,由外部源发送。 |
Trigger Timestamp (Unixtime) | PostMessage 收到触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到触发器发生的经过时间,以毫秒为单位。 |
触发器(全局实验事件)值
当使用 暂停/恢复实验触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器(全局实验事件)选项 | 描述 |
|---|---|
Total Frame Time | 指的是触发器之前分配的总帧时间。 |
Reason for Global Event | 一个字符串值,说明触发器的原因,例如参与者离开研究。 |
Trigger Timestamp (Unixtime) | 全局事件触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到全局事件触发器发生的经过时间,以毫秒为单位。 |
触发器(用户离开实验)值
当使用 参与者离开多用户研究触发器 时,以下触发器特定值可以在处理某些操作时调用:
| 触发器 (用户 离开实验) 选项 | 描述 |
|---|---|
Remaining Number of Participants | 剩余在研究中的参与者数量。 |
Trigger Timestamp (Unixtime) | 用户离开实验触发器发生的时间戳,以 Unix 时间格式显示,带有毫秒。 |
Trigger Time (From Frame Onset) | 从帧开始到用户离开实验触发器发生的经过时间,以毫秒为单位。 |














