Holding a response button down

Ben Robinson BRobinso at mprc.umaryland.edu
Tue Jun 19 17:23:01 UTC 2007


whoops, and i forgot to mention you need an inline immediately after your Label1 and before your Slide1 to reset List1's value for xPos.

c.SetAttribAtSource "xPos", xPos

>>> "Ben Robinson" <BRobinso at mprc.umaryland.edu> 6/19/2007 1:18 PM >>>
i had to do something similar recently.

here's how i did it:

Dim nPresses as Long 'put this first line in the User section of your Script window

have a List object (List1) with a single row, weight=1, for your procedure.
the first object in the timeline of your procedure should be a Label object (Label1).
then put a slide object (Slide1) to display the horizontal line, and the cursor.  fill in the cursor's x-axis position as [xPos], or something like that, and add a column to your list called xPos.
then put an inline object following Slide1.  this code will check to see what the response to the Slide1 was, go back to Label1 if the response was to move the cursor either left or right, or exit the procedural loop if the response was {ENTER}, meaning the cursor is in the desired location.  if either {LEFTARROW} or {RIGHTARROW} is pressed, the inline will adjust the value of xPos in List1 so that the next time Slide1 is drawn the cursor's position will increment appropriately. 

here's the inline code:

nPresses = Keyboard.History.Count
Set lastPress = Keyboard.History(nPresses)

If lastPress Is Nothing Then
	Goto Label1
ElseIf Not lastPress Is Nothing Then
	Select Case lastPress.RESP
		Case "{LEFTARROW}"
			If xPos > [the farthest left the cursor can go on the line] Then
				xPos = xPos -1
			End If
			Goto Label1
		Case "{RIGHTARROW}"
			If xPos < [the farthest right the cursor can go on the line] Then
				xPos = xPos +1
			End If
			Goto Label1
		Case "{ENTER}" 'if they press {ENTER} don't return to Label1, thereby ending this loop.
		Case Else
			Goto Label1
	End Select
End If


>>> "Jared G. Smith" <jared.smith at reading.ac.uk> 6/19/2007 11:47 AM >>>
Hi

I am creating a line bisection task using a method of adjustment whereby 
participants are required to move (left or right) a vertical cursor 
superimposed on a horizontal line towards the perceived midpoint (the 
scripting for this resembles that of visual analogue scales).
Because in many trials the cursor begins placed some distance from the 
objective midpoint, rather than always having to press the response 
button to move the stimulus by one increment, I would like the user to 
be able to hold a keyboard button down in order to move the cursor in 
continuous increments (which would cease moving when the key was 
released) - rather like the effect of pressing a key down on a word 
processor. Does anyone know how such response movement could be achived?

Alternatively, does anyone have an example script for recording the 
duration of a button keyboard press response as I think I could use this 
duration to achieve continuous cursor movement in response to holding 
down a response button?

Would appreciate any help here. Thanks very much.

Best wishes

Jared G Smith

Research Fellow
School of Psychology and Clinical Language Sciences
University of Reading
Reading RG6 6AL
UK



More information about the Eprime mailing list