事件系统

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

事件系统由触发器和动作组成。在这里,您设置规则,比如“当发生这种情况”(触发器)时,“做这个”(动作)。例如:如果参与者单击特定图像(触发器),则显示另一幅随机图像(动作)。
要了解事件在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键。
参数:
滚动触发器
触发条件:在特定元素上使用滚动条、触控板滚动或鼠标滚轮。
参数:
- 选择滚动是沿Y轴还是X轴(垂直滚动或水平滚动)。
目标:设置滚动触发器将应用的目标元素。
注意:对于长文本,在“对象属性”面板下的“样式”部分,Overflow-X和/或Overflow-Y选项需要选择scroll作为选项。
游戏手柄/摇杆触发器
Gamepad/ Joystick Trigger允许您在实验设计中使用游戏手柄和摇杆控制器作为输入设备来记录数据。 **注意:**请记得在Settings选项卡下启用此选项。
生理信号触发器
这些触发器仅在为任务启用眼动追踪和/或头部追踪时适用。
眼动追踪注视触发器
触发条件:
- 总体而言,此触发器将在启用眼动追踪时适用。
- 仅在注视特定元素时触发
参数:
了解更多: 请参阅专用的眼动追踪注视触发器页面,以了解启用眼动追踪、记录注视数据和实际示例。
眼动追踪定点触发器
此触发器仍处于BETA阶段。
了解更多: 请查看专用的 眼动追踪注视触发器 页面,以启用注视检测、记录注视数据和实际示例。
头部追踪触发器
触发条件:
头部朝向或头部运动的变化。
注意: 在事件系统中选择头部追踪触发器后,您可以选择使用和引用 特定于触发器的头部追踪值,以在各种操作中与 值选择菜单 进行关联。
试验和帧触发器
任务初始化触发器
触发条件:
- 任务的第一次试验的第一帧。每个任务只会执行一次,尽管在事件选项卡中会显示该帧的所有实例。
该触发器与洗牌和读取操作配对良好。通过这些组合,您可以在任务开始时洗牌数组条目或数据帧,并将受试者分配到刺激集,而无需创建多个事件来读取刺激或数据。
参数:无
- 注意: 在事件系统中选择任务初始化触发器后,您可以选择使用和引用 特定于触发器的任务初始化值 在各种操作中与 值选择菜单 进行关联。
帧初始化触发器
触发条件:
- 帧的初始化,发生在其对参与者可见之前。
该触发器与洗牌、读取和绘制随机数操作配对良好。通过这些组合,这些操作可以在帧出现之前完成,从而为其他操作的开始留下明确的路径。
注意: 不要将帧初始化触发器与涉及记录变量或系统变量(如试验编号或条件编号)的事件一起使用。这是因为帧初始化触发器发生在试验之间,因此关于即将显示的试验或条件的计数不够准确。
参数:无
- 注意: 在事件系统中选择帧初始化触发器后,您可以选择使用和引用 特定于触发器的帧初始化值 在各种操作中与 值选择菜单 进行关联。
有关任务和帧初始化触发器的注意事项: 由于任务和帧初始化触发器发生在任务或帧开始之前,此期间创建的变量将在任务/帧实际开始时重置。使用此事件时会出现警告:

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

Websocket 触发器
Websocket 触发器用于接收来自 websocket/API 的消息,并将其处理为操作触发器。

单击此选项后,会显示以下项。

- 接受/接收来自: 自动检测本地主机的IP地址。可以在
Settings选项卡下手动更改该地址Special Features。 - 触发器/消息: 输入将作为触发器的消息。键入“任意”以接受多个消息作为触发器。
要查看 API 触发器 / 操作的用法示例,请通过单击对话框中的“检查”选项来查看此演示 https://www.labvanced.com/page/library/51053。
- 注意: 在事件系统中选择 WebSocket 触发器后,您可以选择使用和引用 特定于触发器的 WebSocket 值 在各种操作中与 值选择菜单 进行关联。
OpenAI 触发器
“OpenAI 触发器”可用于基于来自 OpenAI 的信息发起操作。

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

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

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

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

选择此触发器后,将出现以下视图,您可以进一步指定触发器的性质,是否应该在实验暂停或继续/恢复时执行:


实验已暂停: 参与者暂停(退出全屏)研究。
实验已继续: 参与者恢复研究。此触发器适用于眼动追踪研究。如果参与者离开其虚拟下巴支架,则可以用于将其返回到先前的试验或帧。
Participant Left Multiuser Study
如果参与者离开多用户研究,这也可以用作事件的触发器。如果参与者离开多用户研究,这会在全局层面影响实验,因为它会阻止其他参与者继续研究。

通过选择此触发器,您可以指定如果参与者离开多用户研究会发生什么样的操作。

Actions
操作定义事件执行时应该发生的事情。它们可用于更改变量和对象属性、记录数据、从数组中读取和写入数据,或跳转到下一个试验或任务。通常,每个事件有多个操作。使用 "ControlActions",可以使用逻辑操作(If-Else 语句)、循环、回调函数,并将操作嵌套在彼此之内(例如在 if 语句中的 while 循环)。因此,事件系统可以被视为一个图形编程环境。在这个视图中,触发器充当函数调用,而操作描述功能逻辑。这种方法确保几乎可以实现任何实验逻辑,而不需要使用某些编程/语法结构。
下表提供了 Labvanced 中可用操作的入门概述:
| Action Category | Action Options | Description |
|---|---|---|
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 | 粘贴操作 | 允许您粘贴之前复制的操作。 |
Object Actions
对象操作是指在任务中将要发生的对对象的任何操作。有几个对象操作选项:
- 设置对象属性
- 控制媒体对象
- 复制对象
- 对每个对象

Set Object Property Action
通过“设置对象属性”操作,您可以通过指定相关对象、要更改的属性和新值来随心所欲地更改对象的外观。
Control Media Object Action
之前是单独的“控制音频/视频”和“控制对象”操作。
效果:更改视频/音频元素的播放或更改上传/录制元素的状态。
参数:
- 目标:选择一个媒体对象
- 效果:选择一个子操作
- 音频或视频对象选项:
- 开始播放:开始播放视频/音频文件
- 停止播放:停止视频/音频文件
- 暂停播放:暂停视频/音频文件
- JumpToTime:允许指定跳转到音频/视频文件中的时间(以毫秒为单位)
- 静音:关闭对象声音
- 取消静音:恢复对象声音
- 音频、视频或屏幕录制对象选项:
- 开始录制:开始新的(音频)录制
- 停止录制:停止(音频)录制
- 开始上传:开始上传文件
- 清除录制:删除(音频)录制数据。
- 开始播放:开始播放录制的文件
- 停止播放:停止播放录制的文件
- 暂停录制:暂停对象的录制
- 恢复录制:恢复对象的录制
- 文件上传对象选项:
- 开始上传:开始选择文件的上传过程
- 清除文件:删除所选文件
- 选择文件:允许参与者选择所需文件
- 摄像头快照对象选项:
- 启动相机:打开参与者的相机
- 停止相机:关闭参与者的相机
- 开始上传:开始将快照上传到实验
- 拍摄快照:使用参与者的相机拍照
- 音频或视频对象选项:
复制对象操作
效果:复制一个对象,替代多个单独对象和重复事件的需求。
参数:
- 来源:选择要复制的框架上的对象。
- 复制数量:输入要制作的源对象的复制数量。
- 设置新元素名称:从多个参数中选择以确定复制的名称。
- 使用递增后缀分配名称:在新元素名称的末尾添加数字标签以区分各个复制品。
- 操作顺序:允许您选择(从常见操作列表中)复制品将会发生的操作。选择 "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 | 将一个值发送给其他参与者。该值存储在一个变量中。 |
设置 / 记录变量操作
使用 Set / Record Variable 操作,您可以将值写入变量,选择或创建目标变量并通过值选择菜单定义值。它是记录行为测量和驱动基于变量逻辑的核心机制在 Labvanced 中。
复制到剪贴板操作
效果:将变量值复制到计算机的内部剪贴板。
抽取随机数操作
效果:抽取一个或多个随机数并将其保存在变量中。
参数:
- 类型:选择连续值和离散值之间
- 分布:选择高斯分布和均匀分布之间
- 多次抽取(布尔值 true/false):选择一次抽取或多次抽取。
- 抽取数量:选择抽取的数量
- 最小值:定义均匀分布的最小值
- 最大值:定义均匀分布的最大值
- 平均值:定义高斯分布的均值
- 标准差:定义高斯分布的标准差
- 保存到变量:选择一个变量以存储值。
获取 URL 参数操作
效果:从参与者的唯一 URL 中保存一个值。
参数:
- 参数名称:输入所需参数的名称
- 保存到变量:选择要保存参数值的变量
此操作可以与其他操作结合使用,以为参与者构建唯一的 URL 或提取数据分析所需的信息。请参阅 获取 URL 参数操作,了解此操作的专门教程,包括如何与 URL_Search_Params 进行比较。
从/写入设备操作
效果:从本地设备的存储中读取或写入变量。此操作将数据保存到参与者的设备,而不是发送到 Labvanced 服务器。
参数:
- 选择从本地设备读取或写入。
- 选择要读取或写入的变量。
用例:纵向/多会话研究
- 使用此操作,可以在会话之间传递特定设备的数据,只要同一参与者在每个会话中使用相同的设备。
- 例如,您可以使用此操作记录在会话 1 中向每个参与者展示了哪些图像,并确保在会话 2 中向他们展示不同的图像。
- 创建一个图像数组并随机选择一些在每个会话中展示。
- 写入设备:会话 1 中展示的图像的索引号。
- 从设备读取:在会话 2 中,读取会话 1 中图像的索引,并包括一个 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:// 开头,才能使此操作有效。
控制操作
需求操作(如果...则...否则如果)操作
效果:评估 if-then 语句,并依赖执行一系列操作。每个 If / Else-If 语句由嵌套的 AND / OR 比较组成,以评估所有要求是否满足(语句为真)或不满足(语句为假)。如果语句为真,则执行“则”下的操作。有关此操作的专门操作指南,包括一个已处理的 Role_Id 示例,请参见 需求操作。
参数:
- 添加要求:将新要求添加到指令中。“值选择”菜单将在两侧出现,以进行逻辑比较。在语句中间,您可以选择如何比较两侧(例如:等于、小于、不等等)。
- 添加 OR 组:只需在 OR 组中的所有要求中有一个为真,该组即为真。如果某些情况应执行子操作,则添加 OR 组。
- 添加 AND 组:AND 组中的所有要求必须为真,该组才为真。如果只有在满足多个要求时才应执行子操作,请添加 AND 组。
- 操作顺序:每个 If / Else-If 语句都有一个操作列表,定义在“则”下。操作顺序列出某个 If / Else-If 语句的所有操作。可以通过“添加操作”图标添加新操作。只有在相关的 If / Else-if 语句的要求得到满足时,操作顺序才会被执行。
- 添加 Else-If 案例:要求操作可以由多个独立的 If / Else-If --> Then 语句组成。然而,只能执行一个语句。如果一个 If / Else-If 语句被评估为正(返回真),则执行 Then 块中的操作,其他要求操作将被跳过。
- 添加 Else 案例(真/假):如果启用,将在要求操作中添加一个默认/回退选项。如果没有执行任何 If / Else-If 语句(返回真),则将执行在 Else 案例中定义的操作。
重复操作(While Loop)操作
效果:重复执行一系列操作,可以立即执行或在定义的间隔内执行。可以指定停止条件,以便停止循环执行。
参数:
- 执行类型:选择立即执行或定时执行
- 执行完整循环:这将持续执行循环,直到停止条件得到满足。
- 每 ... 毫秒执行:这将在定义的间隔内执行循环(例如,循环每 50 毫秒执行一次)。
- 定义循环次数:当选择“每 ... 毫秒执行”时,用户可以选择一个整数值来指定循环要执行的次数。这将替代定义停止条件的需要。
- 执行间隔:这决定了执行间隔。
- 立即开始(真/假):如果启用,这将立即执行循环。如果禁用,循环将在下一个执行间隔开始。
- 允许多个启动(真/假):如果启用,可以并行启动多个循环实例。如果禁用,一次只能执行一个循环实例。
- 启用停止条件(真/假):如果启用,可以指定循环的停止条件。
- 停止条件:停止条件可用于指定逻辑表达式,以确定何时停止循环执行。与 If / Else-If 语句类似,可以组合 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”操作时,您将看到一个区域(代码编辑器),在该区域中应编写JavaScript代码,以及使用它的说明:

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

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

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

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

上面的图像显示了在使用鼠标触发器时值选择菜单的样子。如您所见,左侧的第一个菜单项以特定于触发器的类别开始,然后移至其他5个类别(当前时间等)。
菜单选项
下表进一步解释了类别和选项:
| 类别 | 选项 | 描述 |
|---|---|---|
Trigger-specific | 取决于您为事件先前选择的触发器类型。 | 基于您为事件选择的触发器,您将在值选择菜单的顶部看到一个特定的选项列表可供选择。请参考特定于触发器的值部分,以查看完整的选项和描述列表。 |
Current Time | 测量和调用时间值。 | |
Constant Value |
| 根据您所需的变量类型,如字符串或数字,分配常量值。这些有时与其他选项结合使用,例如 Arithmetic 来创建计数器。 |
Variable |
| 指定或引用一个变量,或从数组或数据框中选择一个值。 |
Frame / Task / Object |
| 允许您获取与对象属性、框架、眼动追踪(如果已激活)和设备(屏幕刷新率)相关的值。 |
Operations |
| 使用操作对您的变量执行指定的更改,例如组合变量值、将字符串转换为全小写或进行数学运算。 |
当前时间值
使用“当前时间”选项,您可以记录或引用与时间有关的值。
以下选项可用:
当前时间:UNIX时间戳
该值以毫秒形式捕获UNIX格式的时间戳。
当前时间:从框架开始的时间
该值捕获自框架开始以来经过的时间。通常,这等同于反应时间。
常量值
根据您所需的变量类型(如字符串或数字)分配常量值。这些有时与其他选项结合使用,例如 Arithmetic 来创建计数器。
以下选项可用:
常量:字符串
分配一个字符串/文本值。
常量:数字
分配一个数字/数字值。
常量:布尔值
分配一个真或假的值。
常量:类别
分配一个级别值(主要用于因子)。
常量:日期
分配一个日期值。
常量:时间
分配一个时间值。
常量:颜色
分配一个颜色(十六进制字符串)值。
变量值
指定或引用一个变量或从数组或数据框中选择一个值。 可用的选项有:
选择变量
允许您选择并指向一个变量。
从数组中选择值
允许您从数组中选择一个值。
从数据框中选择值
允许您从您创建的数据框中选择一个值。
帧 / 任务 / 对象值
允许您获取与对象属性、帧、眼动跟踪(如果启用)和设备(屏幕刷新率)相关联的值。
对象属性
读取对象属性。
帧
| 帧值选项 | 描述 |
|---|---|
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值,以及使用 Set / Record Variable 操作的[X,Y]数组。

下面是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 触发器)值
使用 Websocket 触发器 时,以下特定于触发器的值可以在处理某些操作时调用:
| 触发器(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 触发器发生所测量的经过时间(以毫秒为单位)。 |
触发器(接收消息)值
使用 接收消息触发器 时,以下特定于触发器的值可以在处理某些操作时调用:
| 触发器(接收消息)选项 | 描述 |
|---|---|
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) | 从帧开始到用户离开实验触发器发生所测量的经过时间(以毫秒为单位)。 |













