Using a timed Slide Duration (e.g. 5000 ms) on a slide with multiple slide states

ekwing erikkwing at gmail.com
Thu Jan 24 18:14:54 UTC 2013


Hi everyone,

I made a related post about this issue a couple weeks ago (which saw no 
activity), however I have progressed since then and wanted to make a new 
post with the updated information.

The goal of my current project is to create a slide which contains 3 rating 
scales and allows participants to use the mouse to select one rating on 
each scale before advancing after 5 seconds (regardless of whether all 
ratings were made or not).  The project is currently set up so that each 
scale point is represented by an individual text box which becomes 
activated (i.e. turns and remains a different color and logs data) when 
clicked. 

Currently, everything about the slide is functional, with the exception of 
advancing after 5 seconds.  Because, I believe, there is a change in slide 
state when a text box becomes "activated" (the participant makes a 
selection), the 5 second slide duration resets every time a participant 
makes a rating scale selection.  This, in turn, results in the slide 
advancing 5 seconds after the participant makes their final selection, 
rather than advancing 5 seconds after the slide comes on the screen as 
desired.

As a secondary question, I was wondering if anyone with experience with 
slide states had any problems with data collection (E-Prime logging and 
Physio) or if you can foresee any problems I may run into using this 
technique.

I've had problems attaching files in the past, but will post the relevant 
inline code that follows the stimulus slide below.  Also, the stimulus 
slide properties currently have Duration set to 5000ms, Timing Mode 
is Cumulative, and a Mouse as a registered device with the following 
properties:

Allowable: 1
Time limit: (Same as duration)
End Action: Terminate

Thanks for any help you can provide,
ekwing

*DOHIT TEST*
'Designate "theState" as the Default Slide State, which is the
'current ActiveState on the Slide object "Stimulus".
Dim theState as SlideState
Set theState = Stimulus.States("Default")

Dim strHit As String
Dim theMouseResponseData As MouseResponseData

'Was there a response?
If Stimulus.InputMasks.Responses.Count < 1 Then

Set theMouseResponseData = Nothing

End If

'Was there a response?
If Stimulus.InputMasks.Responses.Count = 1 Then

'Get the mouse response.
Set theMouseResponseData = 
CMouseResponseData(Stimulus.InputMasks.Responses(1))

'Determine name of SlideText object at mouse click coordinates. Assign that 
value to 
'strHit.
strHit = theState.HitTest(theMouseResponseData.CursorX, 
theMouseResponseData.CursorY)

' Else
' Set theMouseResponseData = Nothing

End If

'Was there a response?
If Stimulus.InputMasks.Responses.Count = 2 Then

'Get the mouse response.
Set theMouseResponseData = 
CMouseResponseData(Stimulus.InputMasks.Responses(2))

'Determine name of SlideText object at mouse click coordinates. Assign that 
value to 
'strHit.
strHit = theState.HitTest(theMouseResponseData.CursorX, 
theMouseResponseData.CursorY)

' Else
' Set theMouseResponseData = Nothing

End If

'Was there a response?
If Stimulus.InputMasks.Responses.Count = 3 Then

'Get the mouse response.
Set theMouseResponseData = 
CMouseResponseData(Stimulus.InputMasks.Responses(3))

'Determine name of SlideText object at mouse click coordinates. Assign that 
value to 
'strHit.
strHit = theState.HitTest(theMouseResponseData.CursorX, 
theMouseResponseData.CursorY)

' Else
' Set theMouseResponseData = Nothing

End If

'If the subject did not click on a box or the SlideText used to exit the 
trial,
'then loop back to the Stimulus so the subject can make another selection.
'If strHit = "Question" OR strHit = "State1" OR strHit = "State2" OR strHit 
= "" Then
' Goto RedoTrial
'End If

'Release references
'Set theMouseResponseData = Nothing

*HIGHLIGHT SELECTION*
'Declare SlideText variable used for modifying box properties.
Dim xSlide As SlideText

'Declare string for holding the name of the Row the box clicked is in.
Dim strRow As String

'Declare variables for storing subject's final rating.
Dim intRating1 As Integer, intRating2 As Integer, intRating3 As Integer

If Stimulus.InputMasks.Responses.Count > 0 Then

  'Gain access to selected box.
  Set xSlide = CSlideText(Stimulus.States.Item("Default").Objects(strHit))

  'Store the name of the row the box was clicked in. This Mid function will 
return
  'the first 4 characters of strHit (the name of the box) and store them in 
strRow
  strRow = Mid(strHit, 1, 4)
 Select Case strRow
    Case "Row1"

  'If a box in this row has not yet been selected...
  If R1 = False Then

    'Highlight this box and set R1 to true (a box in this row has now been 
selected)
xSlide.BackColor = CColor("yellow")
R1 = True

'Return the final character in strHit (the digit) as subject's rating for 
this
'row.
intRating1 = CInt(Mid(strHit, 5, 1))

      'If a box in this row has been selected...
  Else

'If this is the box that has already been selected, reset the color and set 
R1
'to false (a box in this row has not been selected). Otherwise, do nothing.
    If xSlide.BackColor = CColor("yellow") Then
  xSlide.BackColor = CColor("green")
  R1 = False
    End If

  End If

    Case "Row2"

  'If a box in this row has not yet been selected...
  If R2 = False Then

'Highlight this box and set R2 to true (a box in this row has now been 
selected)
xSlide.BackColor = CColor("yellow")
R2 = True

'Return the final character in strHit (the digit) as subject's rating for 
this
'row.
intRating2 = CInt(Mid(strHit, 5, 1))

  'If a box in this row has been selected... 
      Else

'If this is the box that has already been selected, reset the color and set 
R2
'to false (a box in this row has not been selected). Otherwise, do nothing.
    If xSlide.BackColor = CColor("yellow") Then
  xSlide.BackColor = CColor("green")
  R2 = False
    End If

  End If


Case "Row3"

  'If a box in this row has not yet been selected...
  If R3 = False Then

'Highlight this box and set R3 to true (a box in this row has now been 
selected)
xSlide.BackColor = CColor("yellow")
R3 = True

'Return the final character in strHit (the digit) as subject's rating for 
this
'row.
intRating3 = CInt(Mid(strHit, 5, 1))

  'If a box in this row has been selected... 
      Else

'If this is the box that has already been selected, reset the color and set 
R3
'to false (a box in this row has not been selected). Otherwise, do nothing.
    If xSlide.BackColor = CColor("yellow") Then
  xSlide.BackColor = CColor("green")
  R3 = False
    End If

  End If
  End Select

  Goto RedoTrial
  
 ' Else
  'If R1 = False Or R2 = False OR R3 = False Then
  ' Goto EndStimulus

' End If

  End If

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/e-prime/-/8tBvzkHlFhcJ.
For more options, visit https://groups.google.com/groups/opt_out.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/eprime/attachments/20130124/d2870a90/attachment.htm>


More information about the Eprime mailing list