Psychopy学习笔记上|online流程,unexpected token

【链接】【转载】【干货】如何使用PsychoPy的线上实验模式
https://mp.weixin.qq.com/s/RndAMQ30u3O5DctaeV_n1w
上面的流程说的很清楚了

这里记录一下写程序踩的坑

1、code builder线上实验的时候,import语句不能自动转化为js语言,所以会报错,unexpected token

解决方法:修改js语言

举例:

我在实验中需要生成一个随机数,从变量里抽取数据,用code builder写必须要import random,本地可以正常跑,但是传到git跑html文件时就会报上面说的问题。
Psychopy学习笔记上|online流程,unexpected token
我们在psychopy里的所有操作,无论是text code还是keyboard,都会通过生成网页的操作file->export html,自动生成js文件。

step1:

删除code builder里的import语句,注意删除之后psychopy里再跑会出错。
只保留这两句,引用的P1,P2的值在js文件中修改。
Psychopy学习笔记上|online流程,unexpected token

step2

找到生成的js文件里,自定义变量的语句(也就是psychopy里code builder你自己输入的python语句,这里已经生成JavaScript语言了,但是也是不完整,我们要按照需求补全)
Psychopy学习笔记上|online流程,unexpected token
打开js文件,这里生成两个js文件,基本一样,修改内容也一样。(两个都要改)
Psychopy学习笔记上|online流程,unexpected token
直接ctrl+F搜索变量,不要傻乎乎的翻,这里添加1089-1092行的语句,用来引数据,注意这里的写法用的是JavaScript的语言。
总结:也就是code builder里用的python语言,自动转换成js语言后,有些函数不能用(可能因为js没有对应的,所以不能直接转),那么运行时,运行到伪“js”代码就会报错。

还比如记录增加变量python语言:thisExp.addData(‘t_list’, t_list),但如果在code builder里这样写,生成的js也会是thisExp.addData(‘t_list’, t_list),BUT 这个函数是python的写法,所以online的时候会报错。

解决方法如上,找到js文件中该句的位置,换成psychoJS.experiment.addData(“y_list”, y_list);——实现同样功能,但是是js语言,online就没问题

所以其他功能也是一样的,无论是复杂还是简单,online的实验可以先在psychopy里用python写,到后面再在js里修改函数。