gpt4 book ai didi

javascript - setInterval,最后一个元素和最后一个元素之前的一个不同的间隔(jsPsych)

转载 作者:行者123 更新时间:2023-12-02 15:27:38 25 4
gpt4 key购买 nike

我正在尝试修改 jsPsych 中的脚本用于语言和心理学实验的库,这里有一个代码,它按行显示图像,用户可以回答。

您可以设置图像可见的时间,但只能在组中(=每个图像的时间相同),但我需要在不同的时间显示最后一张图像和最后一张图像的前一张图像。有人可以帮助我如何实现这一目标吗?

  var animate_interval = setInterval(function() {
display_element.html(""); // clear everything
animate_frame++;

//zobrazeny vsechny obrazky
if (animate_frame == trial.stims.length) {
animate_frame = 0;
reps++;
// check if reps complete //
if (trial.sequence_reps != -1 && reps >= trial.sequence_reps) {
// done with animation
showAnimation = false;
}
}

// ... parts of plugin, showing answers and so on.

},
3000); // <---------------- how to change this value for the last and one before lastelement?

我不知道这是否足以帮助我,但如果不够,请问我,我会尽力做到最好。预先非常感谢!

最佳答案

可以使用setInterval以不同的时间间隔显示图像。考虑以下因素:

控制系统使用相同的时间间隔显示图像 1,2,…n-2,并使用另一个时间间隔显示图像 n-1,n(“setInterval”,2015)。图1是Petri网的控制系统流程模型。 For the PDF version of this reply, it is an interactive Petri Net.

enter image description here图1

P_1 (m_1) 的标记相当于变量 animate_frame。如果 m_1=0 则不显示图像。如果 m_1=1 则显示第一张图像。如果 m_1=2 则显示第二张图像。等等。如果总共显示十张图像,则初始值为〖m〗_0=8,〖m〗_1=0,〖m〗_2=2。m_0用于控制第一个时间间隔的使用。 m_2用于控制第二时间间隔的使用。 m_1用于显示图像。

有两种执行或运行逻辑:

  1. 第一次执行或运行逻辑 (rn1) 使用第一个时间间隔(例如一秒)。它显示图像 1 到 n-1。显示图像 n-1 后,它会删除间隔对象,并为第二个执行逻辑安排一个新的间隔对象。

  2. 第二次执行或运行逻辑(rn2)使用第二时间间隔(例如四秒)。它显示最后一个图像,然后从显示屏中删除最后一个图像。

可以通过三种方式显示图像。第一种方法 (T_0) 将下一个图像的显示与将 m_1 递增 1 并将 m_(0 ) 递减 1 结合起来。第二种方法 (T_1) 将下一个图像的显示与将 m_1 递增 1 并将 m_2 递减 1 结合起来第三种方法(T_2)显示空白区域,删除最后一个图像。在任何给定时刻,计算逻辑T_0、T_1和T_2都不会发生或仅会发生其中之一。当所有计算逻辑都无法发生时,执行逻辑结束;换句话说,间隔对象被清除(例如clearInterval())。

以图 1 中的 Petri 网为指导,控制系统的计算机程序可组织如下:

rn1

if (m_0≥1)  {
// T_0
m_0=m_0-1
m_1=m_1+1
// update image using plugin API
} else if ((m_0==0) && (m_2≥1)) {
// T_1
m_2=m_2-1
m_1=m_1+1
// update image using plugin API
clearInterval(ai);
ai=setInterval(rn2,4000);
} else
clearInterval(ai);

rn2

if (m_2≥1)  {
// T_1
m_2=m_2-1
m_1=m_1+1
// update image using plugin API
} else if (m_2==10) {
// T_2
m_1=m_1-1
// hide image using plugin API
} else
clearInterval(ai);

启动控制系统:

ai=startInterval(rn1,1000);

那么rn1最终会调用st2,rn2最终会结束进程。如果需要额外的计算(例如display_element.html("")),请将它们添加到rn1和rn2。

引用文献

“setInterval,最后一个元素和最后一个元素之前的一个不同的间隔(jsPsych)”(2015)。堆栈溢出。 2015 年 11 月 5 日检索自 setInterval, different intervals for last and one before last element (jsPsych)

关于javascript - setInterval,最后一个元素和最后一个元素之前的一个不同的间隔(jsPsych),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33556060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com