eprime2.0 倒計時功能

概述

最近幫一位特殊朋友的忙,使用eprime2.0軟件做了一個行爲實驗程序。下面將這兩天遇到的軟件問題和功能整理如下,希望對你有所幫助,可以少走一些彎路。

倒計時功能介紹

Step1: Slide配置

如下圖所示,是slide內的顯示佈局,上方是圖片內容,左下角是提示內容文本,右下角是倒計時顯示文本。
在這裏插入圖片描述
在進行腳本編寫之前,首先需要先配置一下slide的屬性值。第一個比較重要的屬性是Duration,表示界面的持續時間,這裏需要配置爲0。另外在Input Mask欄目下的Keyboard屬性中的Time Limit設置爲infinite
在這裏插入圖片描述

Step2:編寫腳本

上述Slide配置完後,添加一個InLine寫入如下腳本

/* 將Slide中的Text1文本映射到TextBlock中*/
Set TextBlock = CslideText(Slide1.States.Item("default"). Objects("Text1"))
Do 
	/*響應按鍵後退出循環*/
	If Slide1.Resp = "w" Then Exit Do
	If Slide1.Resp = "p" Then Exit Do
	/*獲取系統的時間*/
	Ts = second(Time)
	Tm = minute(Time)
	/*判定系統時間是否變化了*/
	If Ts <> Ts0 Then
		/*倒計時 “秒”的處理*/
		if Ts >= SecInit Then
			SecDelta = Ts - SecInit
		else
			SecDelta = Ts - SecInit + 60
		end if
		/*倒計時 “分”的處理*/
		if Ts >= SecInit then
			if Tm >= MntInit Then
				MntDelta = Tm - MntInit
			else
				MntDelta = Tm - MntInit + 60
			end if
		end if
		/*分鐘超出設定的最大值時,置TimeOutFlag標誌爲1*/
		if cint(MntDelta) >= OverTimeMinute Then
			TimeOutFlag = 1
		else
			/*更新倒計時到Slide中的制定文本*/
			TextBlock.Text  =  "倒計時" + cstr(39 - MntDelta)+ ":" +cstr(59 - SecDelta) 
			/*刷新圖形界面*/
			Slide1.Draw
			Ts0 = Ts
		end if			
	End If
Loop Until cint(MntDelta) >= OverTimeMinute /*循環退出條件爲分鐘計時超出閥值*/
/*清除TextBlock制定的文本*/
Set TextBlock = Nothing

最終效果

最後運行效果如下圖所示,右下角的倒計時開始運作。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章