labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Developmental Psychology
      • Linguistics
      • Clinical & Digital Health
      • Educational Psychology
      • Cognitive & Neuro
      • Social & Personality
      • Arts Research
      • Sports & Movement
      • Marketing & Consumer Behavior
      • Economics
      • HCI / UX
      • Commercial / Industry Use
    • Labvanced Blog
    • Services
  • Technology
    • Feature Overview
    • Code-Free Study Building
    • Eye Tracking
    • Mouse Tracking
    • Generative AI Integration
    • Multi User Studies
    • More ...
      • Reaction Time/Precise Timing
      • Text Transcription
      • Heart Rate Detection (rPPG)
      • Emotion Detection
      • Questionnaires/Surveys
      • Experimental Control
      • Data Privacy & Security
      • Desktop App
      • Mobile App
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • Pricing
    • Licenses
    • Top-Up Recordings
    • Subject Recruitment
    • Study Building
    • Dedicated Support
    • Checkout
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
    • Third-Party Licenses
  • Appgo to app icon
  • Logingo to app icon
Learn
指南
视频
步骤说明
常见问题解答
通讯档案
文档
课堂
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
指南
视频
步骤说明
常见问题解答
通讯档案
文档
课堂
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
  • 指南
    • 入门

      • 任务编辑器
      • 帧
        • 画布框架
        • 页面框架
        • 网站框架
      • 试验时间线
      • 刺激呈现
      • 响应的正确性
      • 对象
      • 事件
      • 变量
      • 任务向导
      • 试验系统
      • 实验设计
        • 创建研究
        • 数据框模式
        • 多用户实验设计
        • 纵向实验设计
    • 特色主题

      • 随机化与平衡
      • 眼动追踪
        • 在眼动追踪任务中呈现刺激
        • 如何选择眼动追踪校准设置
        • 在任务中设置眼动追踪
        • 记录和导出注视数据
        • 使用形状作为眼动追踪的兴趣区域 (AOI)
        • 参与者校准体验
      • 网页桥接
        • 选择网站 AOI | 锚定、调整和验证 AOI 跟踪
        • 在网站 AOI 上跟踪鼠标行为 | Web Bridge 指南
      • 问卷
      • 桌面应用
      • 示例研究
      • 参与者招募
      • API 访问
        • REST API
        • Webhook API
        • WebSocket API
      • 其他主题

        • 精确刺激时间
        • 多用户研究
        • Labvanced中的头部追踪 | 指南
    • 主应用标签

      • 概述:主标签
      • 仪表板
      • 我的研究
      • 共享研究
      • 我的文件
      • 实验库
      • 我的账户
      • 许可与服务
    • 研究标签

      • 概述:研究特定标签
      • 研究设计
        • 任务
        • 阻塞
        • 会议
        • 组
      • 任务编辑器
        • 任务控制
        • 试验系统
        • 框架类型
        • 对象
        • 对象属性表
        • 变量
        • 系统变量表
        • 事件系统
        • 文本编辑器功能
        • 任务编辑器中的眼动追踪选项
        • 任务中的头部追踪
        • 多用户研究
      • 设置
      • 变量
      • 媒体
      • 文本与翻译
      • 启动与参与
      • 受试者管理
      • 数据视图和导出
        • 数据视图和变量 & 任务选择(旧版本)
        • 访问录音(旧版本)
  • 视频
    • 视频概览
    • 在 Labvanced 中开始使用
    • 创建任务
    • 元素视频
    • 事件与变量
    • 高级主题
  • 讲解
    • 简介
    • 斯特鲁普任务
    • 词汇决策任务
    • 波斯纳注视提示任务
    • 改变失明闪烁范例
    • 眼动追踪样本研究
    • 婴儿眼动追踪研究
    • 鼠标追踪注意捕获研究
    • 快速串行视觉呈现
    • ChatGPT 研究
    • 眼动追踪演示:图形作为 AOI
    • 多人演示:显示被试的光标
    • 手柄 / 摇杆控制器 - 基本设置
    • 具有 EEG 集成的桌面应用研究
    • 被试组平衡与变量设置
    • 构建多用户研究
    • 网站框架眼动追踪讲解
    • 条件性网络摄像头眼动追踪
  • 常见问题
    • 功能
    • 支持政策与指南
    • 安全与数据隐私
    • 许可
    • Labvanced 的精确度
    • 编程使用与 API
    • 离线使用 Labvanced
    • 故障排除
    • 研究创建问题
  • 新闻通讯档案
  • 文档
  • 课堂

事件系统

Labvanced中事件系统的插图.

描述

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

  • 有关触发器的完整列表,请参见 triggers
  • 有关操作的完整列表,请参见 actions
  • 有关设置事件下值的 Value-Select 菜单 的更多信息
Labvanced中触发器和动作的使用概述。

事件系统由 triggers 和 actions. 组成。在这里,您设置规则,例如“当发生此事件时”(触发器)然后“执行此操作”(操作)。例如:如果参与者点击特定的图像(触发器),则显示另一幅随机图像(操作)。

有关事件在Labvanced中如何工作的介绍,请参见此快速视频:

创建事件 - 概述

事件在任务编辑器中的“事件”选项卡下进行管理,位于右上角。可以通过单击 + Frame Event 创建新的事件,以便在该帧上发生的事件,或单击 + Trial Event 将事件应用于所有帧。所有现有事件在右侧面板以列表视图显示。事件在帧级别上定义,可以分别/特定于每帧或在试验中每帧上重复/相同。

在Labvanced中添加事件

无论如何,事件始终会为指定帧的试验组中的所有试验定义。然而,自定义逻辑允许用户仅在特定试验、条件或其他情况下执行事件。

选择触发器

创建新事件时,触发器选择作为 瓷砖网格 打开。触发器类型按类别组织(用户输入、生理信号、试验和帧、变量、媒体对象、API和全局)。顶部的搜索框让您可以按名称筛选触发器类型。单击任何瓷砖将其设置为事件的触发器。

选择触发器后,事件会显示一个紧凑的条,包含当前触发器的名称和图标。要切换到不同的触发器,请单击 Change trigger 按钮(铅笔图标)以重新打开瓷砖网格。

下面的视频概述了Labvanced中可用的触发器和操作:

事件的执行顺序可以调整。默认情况下,具有相同触发器的事件在列表中排在更上方,并将首先执行。事件也可以复制和删除。选择现有事件时,具体信息显示在右下(事件属性)面板中。为了更好的概述,现有事件还可以重新打开(名称字段旁边的图标)。

触发器

触发器定义了事件何时被执行。这可能是对特定对象的鼠标点击、特定键盘输入、变量的变化、视频文件的开始或其他许多事情。所有触发器及其设置/参数在以下列表中说明:

触发器类别 触发器选项 描述
User Input Triggers
  • 鼠标触发器
  • 键盘触发器
  • 按钮点击
  • 输入按回车
  • 滚动触发器
  • 游戏手柄/操纵杆触发器
用户输入触发器是指任何可以由用户/参与者通过移动鼠标、点击键盘元素、滚动等手动激活的触发器。
Physiological Signal Triggers
  • 眼动跟踪注视
  • 眼动跟踪凝视
  • 头部跟踪
当有指定的生理输入时,例如注视特定元素或头部运动变化时,会发生生理信号触发器。
Trial and Frame Triggers
  • 任务初始化
  • 帧初始化
  • 帧开始
  • 帧结束
这些触发器发生在实验试验和帧上,例如帧开始或结束时。
Variable Value Changed Trigger变量(值已更改)当特定变量值发生变化时,事件触发器会发生。
Media Object Trigger媒体对象触发器此触发器与媒体对象有关,例如在视频/音频文件中暂停、录制完成等。
API Triggers
  • Websocket触发器
  • Open AI触发器
  • 收到的PostMessage
这些是当有来自API的输入数据时发生的触发器。
Global Triggers
  • 暂停/恢复实验
  • 参与者离开多用户研究
全局触发器是指对实验的任何重大变化,例如实验被暂停或多用户研究中的参与者离开。

用户输入触发器

用户输入触发器是指任何可以由用户/参与者手动激活的触发器。

Labvanced中的用户输入触发器菜单

下表提供了Labvanced中所有可用用户输入触发器的入门概述。每个触发器将在后续部分中更详细地描述。

用户输入触发器选项概述
Mouse Trigger 任何鼠标移动都可以用作触发器来启动事件,例如:滚动、点击、悬停等。您还可以将特定元素或目标与触发器关联。例如,只有在点击特定图像时,鼠标点击才将用作触发器。
Keyboard Trigger任何键盘按键都可以用作触发器来启动事件。您可以指定特定字母或数字作为触发器。
Button-Clicks在Labvanced中创建的按钮对象可以用作触发器来启动事件。
Enter on Input当参与者在实验中按“回车”时,此触发器通常会被使用,作为提交其书面响应或在文本字段中输入的手段。
Scroll Trigger当参与者滚动时,会发生此触发器。您可以指定x或y滚动方向,以及滚动发生在什么元素上作为事件触发器。
Gamepad/ Joystick Trigger此触发器允许您在实验设计中使用游戏手柄和操纵杆控制器作为输入设备来记录数据。

鼠标触发器

“鼠标触发器”选项是一个非常流行的事件触发器,因为它基于任何鼠标交互(例如:向上/向下移动鼠标、点击、悬停在特定对象上、离开特定对象或任何移动)启动事件!

Labvanced中的 '鼠标触发器菜单' 选项。

以下示例展示了一个“鼠标触发”,当在名为“Image_1”的“目标”对象上执行“左”鼠标点击时,将会发生:

在Labvanced中使用的鼠标触发选项示例。

以下是您在使用鼠标触发时的所有选项的全览:

菜单项菜单区域鼠标触发选项和规格
Action

下拉列表:
可用于设置触发行为的鼠标操作从下拉列表中可以选择以下鼠标触发选项:
  • 点击: 通过鼠标点击触发
  • 按下: 通过鼠标按下触发
  • 松开: 通过鼠标松开触发
  • 悬停: 通过将鼠标悬停在对象上触发
  • 离开: 通过将鼠标移出对象触发
  • 移动: 通过任何鼠标移动触发
Button

下拉列表:
鼠标按钮设置的解释
  • 左: 通过左鼠标按钮触发
  • 右: 通过右鼠标按钮触发
Targets

选项:
鼠标目标区域的特写

在上面的示例中,“Image_1”是触发事件的按钮点击目标。

可以通过单击底部的 ‘+Add Target’ 选项添加多个目标。
指定目标时,可以选择以下选项:
  • 在框架背景上触发: 鼠标触发可以在不点击任何对象或元素的情况下激活。
  • 任何元素: 鼠标触发可以在点击框架上的任何元素时激活。
  • 添加目标: 选择必须点击的特定元素以激活触发。
  • 注意: 在事件系统中选择鼠标触发后,您可以在各种动作中使用和引用特定于触发的鼠标值,与值选择菜单一起使用。

键盘触发

“键盘触发”选项是另一种常见的触发事件方式。基本上,任何来自键盘的输入都可以用作触发。包括:按键、按住或释放键。

Labvanced中的键盘触发选项

在下面的示例中,触发器设置为当按下指定的目标数字值(0、2或6)时触发键盘按压:

键盘触发使用示例。

以下是您在使用键盘触发时的所有键和选项的全览:

菜单项菜单区域键盘触发选项
Action

下拉列表:
键盘操作的下拉列表 以下是可用的键盘操作选项:
  • 按键: 通过按键触发(键被按下)
  • 按下或保持键: 当键被按下或保持时触发
  • 释放键: 通过释放键触发
注意: 必须在再次触发之前释放键。
Keys

哪个键触发事件
键选项的特写通过单击**+Add:选择此处指定作为触发的键
  • 箭头: 四个箭头键
  • 数字: 0到9的数字
  • 字母: 英文字母表中的所有字母
  • 特殊: 特殊键(回车、空格、控制、制表符、换档)
  • F键: F1到F10
  • 任何键: 任何这些键都是可以接受的
您可以通过再次单击
+Add:**按钮添加多个键盘触发
额外选项键盘触发的额外选项启用小键盘按钮选项允许在实验中使用小键盘的键作为触发器。

对于允许事件传播选项,如果多个事件具有相同的键盘触发,则所有事件都会触发。 只有第一个事件会触发,并且事件执行将在第一个事件完成后停止。
  • 注意: 在事件系统中选择键盘触发后,您可以在各种动作中使用和引用特定于触发的键盘值,与值选择菜单一起使用。

按钮点击触发

如果您在编辑器中放置了一个按钮或导航对象,可以将其用作事件的一部分,点击按钮作为一个操作的触发器。

Labvanced中的按钮点击菜单

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

按钮点击触发的可用选项

以下是 featured 项的更近的观察:

菜单项菜单区域按钮点击触发选项
目标:

+Set Target
‘设置目标’按钮。 选择按钮元素作为目标
Button:
选项
按钮选择选项区域。指定框架上的哪个特定按钮
  • 注意: 在事件系统中选择按钮点击触发后,您可以在各种动作中使用和引用特定于触发的按钮点击值,与值选择菜单一起使用。

输入上的回车触发

触发条件:在特定元素处按下 Enter/Return 键时。

参数:

  • 添加目标:为事件添加输入元素。

  • 注意: 在事件系统中选择输入上的回车触发后,您可以在各种动作中使用和引用特定于触发的输入上的回车值,与值选择菜单一起使用。

滚动触发

触发条件:在特定元素上使用滚动条、触控板滚动或鼠标滚轮。

参数:

  • 选择滚动是在 Y 轴还是 X 轴(垂直滚动或水平滚动)。

目标:设置将应用滚动触发的目标元素。

注意:对于长文本,在“'对象属性'”面板的“样式”部分,Overflow-X和/或Overflow-Y选项需要选择scroll作为选项。

  • 注意: 在事件系统中选择滚动触发后,您可以在各种动作中使用和引用特定于触发的滚动值,与值选择菜单一起使用。

游戏手柄/操纵杆触发

Gamepad/ Joystick Trigger允许您在实验设计中使用游戏手柄和操纵杆控制器作为记录数据的输入设备。 注意: 请记得在Settings选项卡下启用此选项。

了解更多。

生理信号触发

这些触发器仅在启用了眼动追踪和/或头部追踪时适用。

眼动追踪凝视触发

触发条件:

  • 总的来说,当启用眼动追踪时,将应用此触发器。
  • 仅在查看特定元素时触发

参数:

  • 如果您选择仅在特定元素上触发,请将那些元素作为目标添加。

  • 注意: 在事件系统中选择眼动追踪凝视触发后,您可以在各种动作中使用和引用特定于触发的凝视值,与值选择菜单一起使用。

了解更多: 查看专门的眼动追踪凝视触发页面以启用眼动追踪、记录凝视数据和实际示例。

眼动追踪注视触发

此触发器仍处于测试阶段。

  • 注意: 在事件系统中选择键盘触发后,您可以在各种动作中使用和引用特定于触发的注视值,与值选择菜单一起使用。

了解更多: 请参阅专用的 眼动注视触发器 页面,以启用注视检测,记录注视数据和实际示例。

头部追踪触发器

触发条件:

  • 头部方向或头部运动的变化。

  • 注意: 选择事件系统中的头部追踪触发器后,您可以在各种操作中使用和引用 特定于触发器的头部追踪值 以及 值选择菜单。

试验和帧触发器

任务初始化触发器

触发条件:

  • 任务的第一个试验的第一帧。每个任务只会执行一次,尽管该帧在事件选项卡中显示所有该帧的实例。

该触发器与随机洗牌和从中读取操作配对良好。通过这些组合,您可以在任务开始时洗牌数组条目或数据帧,并将受试者分配给刺激集,而无需创建多个事件来读取刺激或数据。

参数:无

  • 注意: 选择事件系统中的任务初始化触发器后,您可以在各种操作中使用和引用 特定于触发器的任务初始化值 以及 值选择菜单。

帧初始化触发器

触发条件:

  • 帧的初始化,在其对参与者可见之前。

该触发器与随机洗牌、从中读取和绘制随机数操作配对良好。通过这些组合,这些操作可以在帧出现之前完成,留出清晰的路径让其他操作在帧开始时开始。

注意: 不要将帧初始化触发器与记录变量的事件或涉及系统变量(如试验编号或条件编号)的事件一起使用。这是因为帧初始化触发器发生在试验之间,因此即将显示的试验或条件的计数不完全准确。

参数:无

  • 注意: 选择事件系统中的帧初始化触发器后,您可以在各种操作中使用和引用 特定于触发器的帧初始化值 以及 值选择菜单。

关于任务和帧初始化触发器的说明: 由于任务和帧初始化触发器发生在任务或帧开始之前,因此在此期间创建的变量将在任务/帧实际开始时重置。当使用此事件时,会出现警告:

帧初始化警告

如果您不希望变量值被重置,请记得在变量属性窗口中取消选中“在试验开始时重置”框。

帧开始触发器

触发条件:

  • 帧的开始

参数:无

  • 注意: 选择事件系统中的帧开始触发器后,您可以在各种操作中使用和引用 特定于触发器的帧开始值 以及 值选择菜单。

帧结束触发器

触发条件:

  • 帧的结束(帧不再可见之后)

参数:无

  • 注意: 选择事件系统中的帧结束触发器后,您可以在各种操作中使用和引用 特定于触发器的帧结束值 以及 值选择菜单。

变量值变化触发器

变量值变化

触发条件:

  • 变量的值从其起始值发生变化

参数:

  • 变量:选择一个或多个要“监听”变更的变量。这些变量值的任何变化将立即触发相应的操作。

  • 注意: 选择事件系统中的变量值变化触发器后,您可以在各种操作中使用和引用 特定于触发器的变量值变化值 以及 值选择菜单。

媒体对象触发器

媒体对象触发器

以前被称为独立的“控制音频/视频触发器”和“控制对象”触发器。

触发条件:

  • 视频或音频文件的开始、暂停或停止
  • 录音对象的文件上传完成、选择文件、录制完成
  • 相机快照对象的快照完成或上传完成

参数:

  • 目标:选择一个存在于帧上的对象元素

  • 执行条件:选择触发器的子类型

    • 音频或视频对象选项:
      • 播放开始:在元素开始播放时触发
      • 播放停止:在元素暂停时触发
      • 播放结束:在元素停止播放时触发
    • 视频、音频或屏幕录制对象选项:
      • 录制完成:在音频录制停止时触发
      • 上传完成:在文件上传完成时触发
    • 文件上传对象选项:
      • 选择文件:在选择文件时触发
      • 上传完成:在文件上传完成时触发
    • 相机快照对象选项:
      • 快照完成:在相机成功拍摄快照时触发
      • 上传完成:在快照完成上传时触发
  • 注意: 选择事件系统中的媒体对象触发器后,您可以在各种操作中使用和引用 特定于触发器的媒体对象值 以及 值选择菜单。

API 触发器

如果您需要将数据从外部服务器发送或传输到 Labvanced,则可以使用“API触发器”和 “API 操作”。可以用作触发器的有:

  • Websocket 触发器
  • OpenAI 触发器
  • PostMessage 接收

Labvanced中的API触发器菜单。

Websocket 触发器

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

Websocket 触发器菜单选项。

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

Websocket 触发器对话框菜单。

  • 接受/接收自: 自动检测本地主机的 IP 地址。可以在 Settings 选项卡的 Special Features 中手动更改。
  • 触发器/消息: 输入作为触发器的消息。输入“any”以接受多个消息作为触发器。

有关 API 触发器/操作如何使用的示例,请检查此演示 https://www.labvanced.com/page/library/51053,通过在对话框中点击“检查”选项。

有关 API 访问的更多信息,请访问此页面。

  • 注意: 选择事件系统中的 WebSocket 触发器后,您可以在各种操作中使用和引用 特定于触发器的 WebSocket 值 以及 值选择菜单。

OpenAI 触发器

“OpenAI 触发器”可用于根据来自 OpenAI 的信息启动操作。

Labvanced中的OpenAI触发器菜单。

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

OpenAI触发器菜单选项。

注意: 还请参考 此指南,在该指南中,我们逐步建立一个研究,集成 ChatGPT 并利用此触发器。

在下面的示例中,分配的 数据框称为 ‘df’,“OpenAI 触发器”的结果将附加到此数据框。该数据框需要有两列。第一列将表示“角色”,第二列将表示“聊天消息”。来自操作的值将自动附加到此处链接的数据框。

Labvanced中的OpenAI触发器示例。

如果您还使用 “发送到 OpenAI”操作, 则需要在此处指明的地方使用相同的数据框。

  • 注意: 选择事件系统中的 OpenAI 触发器后,您可以在各种操作中使用和引用 特定于触发器的 OpenAI 值 以及 值选择菜单。

收到PostMessage触发器

当正在运行的实验通过浏览器的postMessage API从外部来源接收传入消息时,PostMessage Received触发器会被触发。它对于将实验连接到父页面、自定义应用程序或嵌入的外部网站以将数据发送到研究中非常有用。

了解更多。

  • 注意: 在事件系统中选择PostMessage Received触发器后,您可以选择利用和引用特定于触发器的PostMessage Received值在各种操作中与值选择菜单进行操作。

全局触发器

全局触发器在实验中发生重大变化时触发,即“全局”的变化,比如暂停实验或参与者离开多用户研究!以下选项被列为全局触发器:

  • 暂停 / 继续实验
  • 参与者离开多用户研究

Labvanced中的全局触发器菜单。

暂停/继续实验

“暂停 / 继续实验”触发器是一个选项,允许您基于实验暂停或继续执行事件。

将实验中的暂停作为触发器的选项。

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

此全局触发器的对话框菜单全局触发器菜单中的可用选项

  • 实验已暂停: 参与者暂停(退出全屏)研究。

  • 实验已继续: 参与者恢复研究。此触发器在眼动追踪研究中效果很好。如果参与者离开他们的虚拟下巴托架,它可以用于将参与者返回到之前的试验或帧。

  • 注意: 在事件系统中选择暂停/继续实验触发器后,您可以选择利用和引用特定于触发器的值在各种操作中与值选择菜单进行操作。

参与者离开多用户研究

如果参与者离开多用户研究,这也可以用作事件的触发器。如果参与者离开多用户研究,这在全局级别上影响实验,因为这会阻止其他参与者继续研究。

参与者离开多用户研究选项作为Labvanced中的触发器

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

参与者离开多用户研究触发器对话框。

  • 注意: 在事件系统中选择参与者离开多用户研究触发器后,您可以选择利用和引用特定于触发器的值在各种操作中与值选择菜单进行操作。

动作

动作定义了事件执行时应该发生的事情。它们可以用于更改变量和对象属性、记录数据、从数组读写数据,或跳转到下一个试验或任务。通常每个事件都有几个动作。通过使用“控制动作”,可以使用逻辑操作(If-Else语句)、循环、回调函数,以及将动作嵌套在彼此(例如 if语句中的 while 循环)中。因此,事件系统可以被视为一个图形编程环境。在这个视图中,触发器充当函数调用,而动作描述功能逻辑。这种方法确保几乎任何实验逻辑都可以实现,而不需要某些编程/语法结构。

下表提供了Labvanced中可用动作的介绍性概述:

动作类别 动作选项 描述
Object Actions
  • 设置对象属性
  • 控制媒体对象
  • 复制对象
  • 对每个对象
对象动作指的是将在任务中存在的对象上发生的任何操作。
Variable Actions
  • 设置 / 记录变量
  • 复制到剪贴板
  • 随机数生成
  • 获取URL参数
  • 从 / 向设备读取 / 写入
  • 从 / 向共享变量读取 / 写入
  • 数学与统计
  • 即时记录变量
  • 移动平均滤波器
  • 分发变量
任何读取或记录变量值的动作。
Array Actions
  • 从数组选择(读取)
  • 添加 / 移除数组项
  • 更改数组项(替换)
  • 打乱数组项
数组操作涉及选择、添加、移除、改变和打乱数组及其项。
Data Frame Operations
  • 从 / 向数据框读取 / 写入
  • 打乱数据框项
当您在实验中使用.csv文件(数据框)时,这些动作是相关的。
Jump Actions
  • 跳转到
  • 接受 / 结束会话
  • 拒绝 / 结束会话
  • 重定向到URL
允许您通过跳转到特定部分来导航实验,以及接受和拒绝参与者部分。
Control Actions
  • 需求动作(如果……那么)
  • 重复动作(循环)
  • 延迟动作(时间回调)
  • 动作组
控制动作用于执行特定的事件序列,如 if/then 逻辑、循环(如播放重复声音或闪烁图像),以及设置动作用于何时发生的延迟。
API Actions
  • 发送PostMessage
  • 发送到WebSocket
  • 发送到OpenAI
指向用于向API发送数据的特定API动作。
Code Actions
  • 运行JavaScript
  • 设置全局CSS
代码动作允许您使用JavaScript或CSS。
Paste Action粘贴动作允许您粘贴之前复制的动作。

对象动作

对象动作指的是将在任务中存在的对象上发生的任何操作。对象动作选项有多个:

  • 设置对象属性
  • 控制媒体对象
  • 复制对象
  • 对每个对象

Labvanced中的对象动作选项。

设置对象属性动作

使用“设置对象属性”动作,您可以通过指定相关对象、要更改的属性和新值来按所需的方式更改对象的外观。

了解更多。

控制媒体对象动作

以前是单独的“控制音频/视频”和“控制对象”动作。

效果:更改视频/音频元素的播放或更改上传/录制元素的状态。

参数:

  • 目标:选择一个媒体对象
  • 效果:选择子动作
    • 音频或视频对象选项:
      • 开始播放:开始播放视频/音频文件
      • 停止播放:停止视频/音频文件
      • 暂停播放:暂停视频/音频文件
      • 跳转到时间:允许您指定在音频/视频文件中跳转到的时间(以毫秒为单位)
      • 静音:关闭对象的声音
      • 恢复声音:恢复对象的声音
    • 音频、视频或屏幕录制对象选项:
      • 开始录制:开始新的(音频)录制
      • 停止录制:停止(音频)录制
      • 开始上传:开始上传文件
      • 清除录制:删除(音频)录制数据。
      • 开始播放:开始播放录制的文件
      • 停止播放:停止播放录制的文件
      • 暂停录制:暂停对象的录制
      • 恢复录制:恢复对象的录制
    • 文件上传对象选项:
      • 开始上传:开始所选文件的上传过程
      • 清除文件:删除所选文件
      • 选择文件:允许参与者选择所需文件
    • 摄像头快照对象选项:
      • 开始摄像头:打开参与者的摄像头
      • 停止摄像头:关闭参与者的摄像头
      • 开始上传:开始将快照上传到实验
      • 拍照:使用参与者的摄像头拍照

复制对象操作

效果:复制一个对象,替代需要多个单独对象和重复事件的需求。

参数:

  • 源:选择要复制的帧上的对象。
  • 复制数量:输入要制作的源对象的复制数量。
  • 设置新元素名称:从多个参数中选择以确定复制的名称。
  • 使用递增后缀分配名称:在新元素名称的末尾添加数字标签以区分复制品。
  • 动作序列:允许您从常规动作列表中选择要对复制品执行的操作。选择“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中驱动基于变量逻辑的核心机制。

了解更多.

复制到剪贴板操作

效果:将变量值复制到计算机的内部剪贴板。

绘制随机数操作

效果:绘制一个或多个随机数,并将其保存在变量中。

参数:

  • 类型:选择连续值和离散值之间
  • 分布:选择高斯分布和均匀分布之间
  • 多次绘制(布尔值真/假):选择绘制一次或多次。
  • 绘制数量:选择绘制的数量
  • 最小值:定义均匀分布的最小值
  • 最大值:定义均匀分布的最大值
  • 平均值:定义高斯分布的平均值
  • 标准差:定义高斯分布的标准差
  • 保存到变量:选择一个变量,值将存储在其中。

获取URL参数操作

效果:从参与者的唯一URL中保存一个值。

参数:

  • 参数名称:输入所需参数的名称
  • 保存到变量:选择要保存参数值的变量

此操作可以与其他操作结合使用,以构建参与者的唯一URL或提取数据分析所需的信息。

从/写入设备操作

效果:从本地设备存储中读取或写入一个变量。此操作将数据保存在参与者的设备上,而不是将数据发送到Labvanced服务器。

参数:

  • 选择从本地设备读取或写入。
  • 选择要读取或写入的变量。

使用案例:纵向/多会话研究

  • 使用此操作,设备特定的数据可以在会话之间传递,前提是同一参与者在每个会话中使用相同的设备。
  • 例如,您可以使用此操作记录在会话1中向每个参与者展示了哪些图像,并确保在会话2中向他们展示不同的图像。
    • 创建一个图像数组,并随机选择一些在每个会话中展示。
    • 写入设备:会话1中展示的图像的索引号。
    • 从设备读取:在会话2中,读取会话1中图像的索引,并包含一个JavaScript操作,防止那些索引在第二次会话中被选中。

从/写入共享变量操作

效果:从或写入一个在研究的会话之间共享的变量。该变量可以与所有参与者共享,也可以是每个个体私有的。

参数:

  • 选择要同步的变量。必须是标量或数组。
  • 高级选项
    • 存储键:选择一个变量的名称,作为访问同步变量的键。
    • 读取或写入方法:
      • 读取、修改,然后写入共享变量:读取变量,进行更改,然后将变量发送到研究中。
      • 仅从服务器读取共享值:调用在研究中共享的变量,但不进行任何更改。
      • 仅将变量写入服务器:对共享变量进行更改,但不向参与者显示。
      • 在不同参与者之间共享值(不仅仅是在会话之间):允许参与者在会话之间查看彼此同步的变量值。默认情况下选择此选项,但可以通过点击复选框取消选择。
  • 动作序列:
    • 从所有可用操作中选择对共享/同步变量进行的操作。

使用案例:纵向/多会话研究

  • 使用此操作,参与者特定的数据可以在会话之间传递,并且可以在参与者之间共享。
  • 例如,您可以使用此操作记录测试的得分,然后允许参与者将自己的得分与完成测试的其他参与者的平均得分进行比较。
  • 另一个示例(类似于从/写入设备操作)是让参与者从一个数组中选择他们喜欢的5个图像,执行任务,然后在后面的会话中再次呈现这5个图像。不同之处在于,此操作可用于向其他参与者展示所选的图像,或将这些图像从另一个参与者的可选项中排除。

数学与统计操作

效果:对某个输入变量(数组)执行数学运算,并将结果保存在输出变量中。

参数:

  • 类型:在数组操作、线性代数和统计测试之间选择
  • 操作:选择数学运算(例如,sum,min,stdev等)
  • 输入数组:选择用于执行操作的输入变量(数组)
  • 参数:某些操作具有附加参数。
  • 输出:选择一个输出变量,以便存储结果。

立即记录变量操作

效果:创建所有变量值的快照并发送到 Labvanced 服务器。

参数:无

移动平均滤波器操作

效果:计算某些输入的移动平均(数据的持续更新平均值),并将结果存储在一个新变量中。

参数:

  • 滤波器类型:选择滤波器类型
    • 简单移动平均:计算简单移动平均,其中所有样本具有相同的权重。
    • 线性加权移动平均:加权样本,使样本的权重线性减少。
    • 指数移动平均:加权样本,使样本的权重指数递减。
  • 样本数量:确定每步使用多少样本。
  • 输入:选择用于计算移动平均的输入变量(数组)。
  • 输出:选择存储结果的输出变量。

分发变量操作

分发变量操作对 Labvanced 中的多用户研究 是至关重要的。通过此操作,变量值可以在参与者之间共享,从而使信息(包括刺激位置和任何更改)能够反映在参与者的屏幕上。请参见 分发变量操作 以获取有关此操作的详细说明。

在 Labvanced 操作菜单中分发变量操作。

选择此操作后,将出现以下对话框,您可以指定要在参与者之间分发的变量值。

下图是当所有菜单项均已填写时,功能性分发变量操作对话框的外观。在此示例中,分发变量是用于通过从输入字段对象分发变量值来在两个参与者之间创建聊天的一种操作。

使用所有菜单选项设置为示例的分发变量。

请查看此演示,其中包含分发变量和聊天框功能: 图像描述任务与聊天附加功能。

有关对话框菜单项的完整说明如下:

菜单项菜单区域分发变量操作选项和描述
Distribute value to选择向哪些参与者发送分发变量选择将值发送到哪些其他参与者。
  • 所有参与者: 将此值发送给所有参与者
  • 选定参与者: 将值发送给选定的参与者。
Choose target variable and value指定变量目标和数值
  • 目标变量: 选择一个目标变量以存储该值。
  • 值: 确定应发送给其他参与者的值。
Block分发变量的阻塞选项如果启用,目标变量在当前值分发完成之前不可更改。
Rate Limit Strategy分发变量的速率限制策略选项速率限制策略是一种保护您的实验不溢出服务器的方法,并充当控制发送到服务器的请求速率(即,通过分发变量更新)的预防性策略。以下策略选项可用:
  • 防抖动: 当此操作在 100 毫秒的时间窗口内执行超过一次时,则新的服务器消息将被“防抖动”(在没有任何执行该操作的 100 毫秒间隔之后,仅发送最新消息)。
  • 节流: 当此操作在 100 毫秒的时间窗口内执行超过一次时,则新消息将受到节流(即,自上一次发送消息以来经过 100 毫秒后,仅分发最新消息)。
  • 丢弃: 当此操作在 100 毫秒的时间窗口内执行超过一次时,则在该 100 毫秒窗口内的新消息将被丢弃。
  • 排队: 当此操作在 100 毫秒的时间窗口内执行超过一次时,则新的变量值将排队(最多队列大小为 10 条消息)。

数组操作

从数组中选择(读取)操作

效果:将一个变量从数组中读取出来,并将此值存储在标量变量中。

参数:

  • 数组变量:输入数组以读取出值。
  • 索引类型:确定使用何种索引。
    • 固定:使用固定索引进行读取操作。在这种情况下,输入应读取信息的位置(基于 1)。
    • 变量:使用数字变量作为读取操作的索引。在这种情况下,选择一个标量数字变量以确定读取位置。
    • 数组末尾:从数组末尾读取。
  • 输出变量:选择一个标量变量以存储读取出的值。

添加/删除数组条目操作

效果:将条目添加到/从数组中删除。

参数:

  • 数组变量:应该执行添加或删除操作的数组变量。
  • 索引类型:确定使用何种索引。
    • 固定:使用固定索引进行插入/删除操作。在这种情况下,输入数组中应插入/删除条目的位置(基于 1)。
    • 变量:使用数字变量作为插入/删除操作的索引。在这种情况下,选择一个标量数字变量以确定应插入/删除的位置。
    • 数组末尾:从数组末尾插入/删除。
  • 删除的条目数量:将删除数组条目(在插入新条目之前),从定义的索引位置开始。0 表示不删除任何值。
  • 要插入的变量:选择一个或多个标量变量,这些变量将在定义的索引位置添加到数组变量中。

更改(替换)数组条目操作

效果:将数组中的一个值替换/更改。

参数:

  • 数组变量:需要修改的数组变量。
  • 索引类型:确定使用何种索引。
    • 固定:使用固定索引进行替换操作。在这种情况下,输入应更改的数组位置(基于 1)。
    • 变量:使用数字变量作为替换操作的索引。在这种情况下,选择一个标量数字变量以确定替换操作的位置。
    • 数组末尾:替换数组中的最后一个条目。
  • 输入变量:选择一个(标量)变量以存储新值。

洗牌数组条目操作

效果:将数组中的条目/顺序重新洗牌。

参数:无

数据框操作

从数据框中读取/写入操作

效果:从数据框读取值或将值写入数据框,并将它们保存到新数组变量中。

参数:

  • 数据框变量:选择要读取的数据框的变量。
  • 读取或写入:选择从所选数据框读取或向所选数据框写入。
  • 按行或列:选择数据应如何读取。
  • 索引类型:选择将用于读取数据框的索引变量类型。可以是固定、变量或者最后一行。
  • 索引变量:选择将用作索引以读取数据框的变量。
  • 输出变量:选择将读取/写入的数据存储为输出的变量。必须是数组变量。

洗牌数据框条目操作

效果:洗牌数据框中的条目顺序。

参数:

  • 选择要洗牌的数据框。
  • 选择数据框应按行还是按列洗牌。

跳转操作

跳转到操作

效果:“跳转”参与者到实验中的不同步骤。此操作可以改变实验中试验和任务的顺序,并可用于为每位参与者创建个性化的实验逻辑。

参数:

  • 跳转到:确定在实验中跳转到哪里。
    • 下一个帧:跳到下一个帧。如果试验中没有定义更多帧,则跳到下一个试验的第一个帧。
    • 下一个试验:跳到下一个试验。如果没有定义更多试验,则跳到下一个任务的第一个试验。
    • 下一个任务:跳到下一个任务。如果没有定义更多任务,则跳到下一个块的第一个任务。
    • 下一个块:跳到下一个块。如果没有定义更多块,则会结束会话。
    • 上一个帧:跳到上一个帧。如果没有上一个帧,则不会执行该操作。
    • 特定帧:跳到特定帧。用户直接选择要跳转的帧。
    • 特定试验:跳到特定试验。用户直接选择要跳转的试验编号。
    • 特定任务:跳到当前块中指定任务的第一个实例。用户直接选择要跳转的任务。
    • 特定块:跳到指定块的第一个实例。用户直接选择要跳转的块。
  • 检查所需答案之前:如果启用,实验将检查是否所有所需的答案都已被回答。如果没有,则不会执行跳转操作。

接受/结束会话操作

效果:将接受参与者的数据,结束录音会话,并显示众包代码。

参数:

  • 在结束会话前记录试验数据:如果启用,最最近的试验数据将在退出研究之前被存储(发送到服务器)。
  • 显示默认结束页面:如果启用,将出现默认的Labvanced结束屏幕。如果这是一个众包会话(使用了众包链接),将向参与者显示补偿代码。如果禁用,实验将在显示当前画面后结束,并不会显示带补偿代码的默认结束屏幕。

拒绝/结束会话操作

效果:结束录音会话,不会将参与者的数据标记为完成,也不会显示带补偿代码的默认结束屏幕。

在使用此操作拒绝参与者的数据时,用户应向参与者展示适当的信息,解释他们为什么不会得到时间报酬。

参数:无

重定向到网址操作

效果:将参与者重定向到特定网址。

注意:网址必须以https://开头才能使此操作有效。

控制操作

条件操作(如果... 那么... 否则如果)操作

效果:评估一个如果-那么的语句,并依赖地执行一系列操作。每个如果/否则-如果语句都由嵌套的与/或比较组成,用以评估是否满足所有要求(语句为真)或不满足(语句为假)。如果语句为真,则执行“那么”下的操作。有关该操作的独立详细讲解,包括示例Role_Id,请参见条件操作。

参数:

  • 添加要求:向语句添加新的要求。逻辑比较的“值选择”菜单将在两边出现。在语句的中间,您可以选择如何比较两边(例如:相等,小于,不相等等)。
  • 添加或组:在或组内,只有一个要求为真时整个组才为真。如果子操作应在多种情况下执行,请添加一个或组。
  • 添加与组:在与组内,所有要求都必须为真时整个组才为真。如果子操作仅在满足多个要求时执行,请添加一个与组。
  • 操作序列:每个如果/否则-如果语句都有一系列操作,这些操作在“那么”下定义。操作序列列出了特定如果/否则-如果语句的所有操作。可以通过“添加操作”图标添加新操作。操作序列仅在满足关联的如果/否则-如果语句的要求时执行。
  • 添加否则如果情况:条件操作可以由多个独立的如果/否则-如果-->那么语句组成。然而,仅能执行一个语句。如果一个如果/否则-如果语句被正面评估(返回真),则执行“那么”块中的操作,跳过条件操作的其他部分。
  • 添加否则情况(真/假):如果启用,则向条件操作添加默认/回退选项。如果没有执行任何如果/否则-如果语句(返回真),则将执行定义在否则情况中的操作。

重复操作( while 循环)操作

效果:重复执行一系列操作,或者立即执行,或者在定义的间隔内执行。可以指定停止条件,以便停止循环执行。

参数:

  • 执行类型:选择立即执行或定时执行
    • 执行完整循环:这将持续执行循环,直到满足停止条件。
    • 每...毫秒执行:这将在定义的间隔内执行循环(例如,循环每50毫秒执行一次)。
  • 定义循环次数:当选择“每...毫秒执行”时,用户可以为循环执行的次数分配一个整数值。这取代了定义停止条件的需要。
  • 执行间隔:这决定了执行的间隔。
  • 立即开始(真/假):如果启用,这将立即执行循环。如果禁用,循环将在下一个执行间隔开始。
  • 允许多个启动(真/假):如果启用,可以并行启动多个循环实例。如果禁用,一次只能执行一个循环实例。
  • 启用停止条件(真/假):如果启用,可以指定循环的停止条件。
  • 停止条件:停止条件可以用来指定一个逻辑表达式,用于指明何时应停止循环执行。类似于如果/否则-如果语句,可以结合与组、或组和要求进行逻辑比较。
  • 操作序列:操作序列列出了在循环的每次迭代中执行的所有操作。可以通过“添加操作”图标添加新操作。

延迟操作(时间回调)操作

效果:在一定时间延迟后执行一系列操作

参数:

  • 延迟类型:选择固定延迟或可变延迟
    • 固定延迟:操作将在固定延迟后执行。
    • 可变延迟:操作将在由(数值)变量指定的延迟后执行。
  • 延迟:延迟的时间长度,以毫秒(ms)为单位。
  • 操作序列:操作序列列出了在指定时间延迟后执行的所有操作。可以通过“添加操作”图标添加新操作。

操作组

操作也可以被组织为**操作组。**操作组允许您将某些操作组合在一起,以便于视觉结构,但也可以在您想复制、重复或一次性删除多个操作时使用。

了解更多.

API 操作

如果您需要将数据从外部服务器发送或传输到Labvanced,则可以使用“API操作”和“API触发器”。您可以在此类别下找到以下操作:

  • 发送PostMessage
  • 发送到Websocket
  • 发送到OpenAI

为了使这些操作“可用”或可使用,您必须在Settings选项卡下输入API密钥。

Labvanced操作菜单中的API操作。

发送PostMessage操作

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

了解更多.

发送到Websocket操作

Labvanced操作菜单中的发送到Websocket操作。

选择此操作时,将出现以下选项:

发送到Websocket操作的选项。

以上示例和完整事件结构可以在此访问:https://www.labvanced.com/page/library/51053,通过单击“检查”。

菜单项描述
发送到:指定在Settings选项卡下列出的Websocket地址。
触发器/要发送的消息:指定您希望发送的触发器或消息。
发送变量(可选):指定可以作为操作的一部分发送的变量。

有关API访问的更多信息,请访问此页面。

发送到OpenAI操作

“发送到OpenAI”操作允许您将信息(例如字符串输入值)发送到OpenAI。请注意,为了使此选项可用,您必须在Settings选项卡下列出您的API密钥。

Labvanced操作菜单中的发送到OpenAI操作。

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

发送到OpenAI操作的选项。

这是一个功能示例,显示当提供所有必要信息时此事件的样子:

发送到OpenAI操作的示例。

为了更好地理解如何利用此功能并观察其实际效果,请随时通过提交此联系表单与我们联系以获取演示。

注意: 还请参考此操作指南,在该指南中我们将逐步构建一个研究,集成ChatGPT并利用此操作。

以下是关于“发送到OpenAI”操作下所包含字段的更深入解释:

菜单项菜单区域“发送到OpenAI”操作选项
Model Type模型类型下拉列表 指定将要使用的AI模型。

Chat History Dataframe用于指定数据框变量的字段链接到具有两列的数据框。第一列表示‘角色’,第二列表示‘聊天消息’。来自该操作的值将自动附加到此处链接的数据框中。

数据框也可以通过数据框操作进行操作。有关更多信息,请查看OpenAI的文档。
Insert Message ‘+’ 插入消息图标。点击此处,变量对话框将会出现。您需要指明哪个“变量”值被发送到OpenAI,以及相关消息的“角色”:
  • 系统: 指高层次的ChatGPT系统
  • 用户: 参与者
  • 助手: 指在系统中创建的特定子角色

由于OpenAI每天都在发展,请查看OpenAI的文档以获取进一步的澄清。

代码操作

在某些情况下,您的实验可能需要您使用自定义代码。通过这些操作,您可以做到这一点!“代码操作”菜单下提供了以下选项:

  • 运行JavaScript
  • 设置全局CSS

Labvanced操作菜单中的代码操作。

运行JavaScript操作

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

Labvanced操作菜单中的运行JavaScript操作。

选择上述“运行JavaScript”操作后,您将看到一个区域(代码编辑器),在此处编写JavaScript代码,并可查看如何使用的说明:

Labvanced中的JavaScript代码编辑器。

设置全局CSS操作

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

Labvanced操作菜单中的设置全局CSS操作。

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

Labvanced中的CSS代码编辑器。

使用“设置全局CSS”操作的一个示例是在参与者从选择题中选择特定颜色时更改研究的背景色。

粘贴操作

此选项允许您粘贴先前创建并复制的操作。它可以让您在设计实验时工作更快,因此无需重复选择相同的项目。例如,如果您有一个与已存在的事件类似的事件,您可以直接复制它、粘贴并修改,而不是从头开始构建。

值选择菜单

在处理某些事件时,您会注意到一个笔图标出现。这被称为值选择菜单,因为它允许您选择并指示将要记录或跟踪的值类型。它是一个非常强大且重要的选项,您一定会在实验设计和设置中使用。

此笔图标/值选择菜单在事件系统中某些操作的不同位置出现,例如设置/记录变量操作、设置对象属性操作和要求(如果...则)操作,如下所示。

Labvanced中的值选择位置。

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

Labvanced中的值选择菜单

上面的图像展示了在使用鼠标触发时值选择菜单的外观。正如您所看到的,左侧的第一个菜单项以触发器特定的类别开始,然后转到其他5个类别(当前时间等)。

菜单选项

下表进一步解释了类别和选项:

类别选项描述
Trigger-specific取决于您之前为事件选择的触发器类型。根据您为事件选择的触发器,值选择菜单顶部将出现特定选项列表供您选择。请参阅关于特定触发器值的部分以查看完整选项和描述列表。
Current Time
  • UNIX时间戳
  • 帧开始时间
测量和引用时间值。
Constant Value
  • 字符串
  • 数字
  • 布尔值
  • 分类
  • 日期
  • 时间
  • 颜色
根据您所需的变量类型(如字符串或数字)分配常数值。这些有时与其他选项如 Arithmetic结合使用以创建计数器。
Variable
  • 选择变量
  • 从数组选择值
  • 从数据框选择值
指定或引用一个变量或从数组或数据框中选择一个值。
Frame / Task / Object
  • 对象属性
  • 帧
  • 眼动追踪
  • 设备
允许您获取与对象属性、帧、眼动追踪(如果启用)和设备(屏幕刷新率)相关联的值。
Operations
  • 算术
  • 字符串操作
  • 数学操作
使用操作对您的变量进行特定更改,例如结合变量值、将字符串转换为全小写或执行数学运算。

当前时间值

使用“当前时间”选项,您可以记录或引用与时间相关的值。

以下选项可用:

  • UNIX时间戳
  • 帧开始时间

当前时间: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 值(数组格式)。

设备

  • 刷新率: 参与者设备的刷新率值。

操作

使用操作对您的变量执行指定的更改,例如组合变量值、转换字符串使其全部为小写或执行数学运算。

可用的选项如下:

  • 算术
  • 字符串操作
  • 数学操作

算术

算术运算对许多不同的目的非常有用,包括组合字符串甚至修改对象属性。

Labvanced中的算术菜单。

本质上,算术操作允许您对多个值执行操作。

选择此选项后,将出现附加的笔图标(即 值选择菜单),以及操作列表,例如加法。

Labvanced中的算术选项的位置。

可以通过这些 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)
  • 鼠标 X
  • 鼠标 Y
  • 鼠标 [X,Y] 数组
  • 刺激名称
  • 刺激信息
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Keyboard)
  • 键的 ID
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Button Bar)
  • 刺激名称
  • 刺激信息
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Enter On Input)
  • 键的 ID
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Scroll)
  • 刺激名称
  • 刺激信息
  • 滚动位置 X
  • 滚动位置 Y
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Gamepad/ Joystick)
  • 游戏手柄设备 ID
  • 按下的键(数组)
  • 按下或保持的键(数组)
  • 释放的键(数组)
  • 轴(数组)
  • 游戏手柄时间戳(Unixtime)
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Eyetracking Gaze)
  • 坐标 X
  • 坐标 Y
  • 坐标 [X,Y] 数组
  • 刺激名称
  • 刺激信息
  • 相机捕捉时间 T
  • 凝视置信度 C
  • 坐标 + 时间 [X,Y, T] 数组
  • 坐标 + 时间 + 置信度 [X,Y, T,C] 数组
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Eyetracking Fixation)
  • 定点质心 X
  • 定点质心 Y
  • 定点持续时间
  • 定点开始时间
  • 定点结束时间
  • 定点分散
  • 刺激名称
  • 刺激信息
  • [X,Y, Dur, Start, End, Disp]
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Head Tracking)
  • 相机捕捉时间 T
  • 脸网格数据框
  • 头部转动
  • 头部倾斜
  • 头部滚动
  • 头部位置 [X,Y, T] 数组
  • 鼻子位置 [X,Y, T] 数组
  • 鼻子向量 [X,Y, Z, T] 数组
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (On Task Initialization)
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (On Frame Init)
  • 试验编号
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (on Frame Start)
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (On Frame End)
  • 总帧时间
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Variable Value Changed)
  • 变量中的新值
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Media Object Trigger)
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Websocket Trigger)
  • 消息
  • 数据
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (OpenAI Trigger)
  • 聊天 GPT 回答
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (PostMessage Received)
  • 消息内容
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (Global Experiment Event)
  • 总帧时间
  • 全球事件原因
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)
Trigger (User Leaves Experiment)
  • 剩余的参与者数量
  • 触发时间戳(Unixtime)
  • 触发时间(从框架开始)

触发器(鼠标)值

当使用鼠标触发器时,可以在处理某些操作时调用以下特定于触发器的值:

可用的鼠标触发值选项

触发器(鼠标)选项描述
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)从帧开始到注视触发发生的经过时间(以毫秒计)。

了解更多: 请参阅专用的 眼动追踪注视触发器 页面,以启用注视检测、记录注视数据和实际示例。

触发器(头部追踪)值

当使用 头部追踪触发器 时,可以在执行某些操作时调用以下触发器特定值:

触发器 (头 部 追踪) 选项描述
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 AnswerChatGPT 的回答值。
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)从帧开始到用户离开实验触发器发生的经过时间(以毫秒为单位)。
Prev
对象
Next
变量