概述
最近幫一位特殊朋友的忙,使用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
最終效果
最後運行效果如下圖所示,右下角的倒計時開始運作。