轻松学习E-Prime(三十一):用代码读取按键记录(ResponseData)

我们虽然已经能够Advanced按钮设定来显示被试的按键,不过这终究不够灵活。
通过查看帮助文件,我们会发现一个叫ResponseData的类,这个类下面还有好几个子类,如KeyboardResponseData,MouseResponseData。


ResponseData及其子类

这些类,都是用来记录相应的设备的反应数据的。如KeyboardResponseData是用户对键盘的按键的各方面数据记录。
那接下来我们首先先看一下在帮助文档里的东西。
ResponseData有这些属性:


ResponseData的属性

首先明白一点:一个ResponseData,对应一次反应。其中RESP就是按下的按键,如”A”键,”Shift”键等等,总之是你在刺激控件中按下的按键。
听上去很抽象,那么请打开“示例程序3-11”,请查看里面的Inline1,看看代码和注释。
这些代码是根据官方自带教程里的代码改编而成的。

示例3-11的结构图

Inline1代码(1)
Inline1代码(2)

其中,你会注意到后面的代码里,有些代码在行的最后有下划线。
这个下划线其实前面和后面各有一个空格,其作用是当一行代码太长的时候,可以用这个方式换行。注意空格是不可少的。
试试看,里面是什么效果?
具体各代码的作用,请看Inline1当中的注释。

阶段练习

①设计一个程序,一个StimDisplay接收一次按键,这次按键可以是鼠标也可以是键盘。按键后,在屏幕上显示按下的是什么键,是鼠标还是键盘。并且,如果按下的是空格键,显示:“你刚才按了空格键。”
提示:用If [ResponseData] .RESP = “{SPACE}” then 来检查。
②设计一个程序,一个StimDisplay接收两次键盘按键。检查两次按键是否是相同的,如果是相同的,那么显示“你刚才按了两个相同的按键”;否则,分别把两个按键在屏幕上显示出来。
③设计一个程序,一个StimDisplay只接收松开的按键。此外,如果是松开了空格键,那么显示“你刚才松开了空格键”,否则显示“你没有松开空格键”,然后重新显示该StimDisplay,直到被试按下空格键为止。


此为开源免费教程。教程所用资源等请访问目录或专题,或者Github页面:
https://www.jianshu.com/p/5bbf1c274370
https://github.com/zkx654321/Learn-E-Prime-Easily

你可能感兴趣的:(轻松学习E-Prime(三十一):用代码读取按键记录(ResponseData))