如何通过多次击键进入PsychoPy(JS在线版本)的新例程

问题描述 投票:0回答:1

我有一个PsychoPy任务,参与者需要在两个盒子之间做出选择。按下右箭头键三下即可“打开”一个框。另一个通过两次按左箭头键来“打开”。 “打开”是指任务前进到下一个例程。我已经使用Python成功编写了代码,但是要在线运行它,我需要使用JavaScript。我尝试过的一切都没有奏效。这是Python代码:

if key_resp_14.keys == ['left', 'left']:
    continueRoutine = False
elif key_resp_14.keys == ['right', 'right', 'right']:
    continueRoutine = False
elif key_resp_14.keys == ['left', 'right']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])
elif key_resp_14.keys == ['right', 'right', 'left']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])
elif key_resp_14.keys == ['right', 'left']:
    key_resp_14.keys = []
    theseKeys = key_resp_14.getKeys(keyList=['left', 'right'])

我尝试在JS中使用基本上相同的代码:

if (key_resp_14.keys === ["right","right","right"]) {
    continueRoutine = false;
}

if (key_resp_14.keys === ["left","left"]) {
    continueRoutine = false;
}

我尝试了上述代码的各种版本,但均未成功。我还尝试过创建一个向量变量,并将信息从key_resp_14.keys推送到该向量中。当我这样做时,我从任务开始就获得了所有击键(从key_resp_14.keys一直到整个key_resp_1.keys),而不仅仅是来自key_resp_14.keys的击键。任何帮助或建议,我们将不胜感激。

javascript psychopy
1个回答
0
投票

首先要注意的是,构建器中的PsychoPY(2020.1)最新版本具有自动将Python代码转换为JS代码的功能,因此,如果您使用构建器尝试安装该更新,它可能对您有用。 >

更直接地讲,我认为您不需要===,只是==应该可以在JS中使用。另外(我不是PsychJS专家),但是我想知道您是否以与PsychoPy不兼容的方式结束例程。参见该话题上的该线程,讨论如何在PsychoPy的更新版本中结束循环。https://discourse.psychopy.org/t/loop-finished-true-no-longer-working/11190

© www.soinside.com 2019 - 2024. All rights reserved.