text.unfold

getText(id).unfold( delay ) (since PennController 1.3) Unfolds the text in delay milliseconds. Example: [js highlight=”2″ try=”true”]newText(“Hello world”) .unfold( 3000 ) , newTimer(3000) .start() .wait()[/js] Starts unfolding the text “Hello world” in 3s (which is very slow for only two words) and immediately starts a 3s timer and waits until it ends.

button.click

getButton(id).click() (since PennController 1.2) Simulates a click on the button. Example: [js highlight=”3,4″ try=”true”]newKey(” “) .settings.callback( getButton(“continue”) .click() ) , newButton(“continue”, “Continue”) .print() .wait()[/js] Creates a Key element associated with the spacebar which, whenever pressed, will simulate a click on the continue button added below it, then will wait until the button is clicked (or …

scale.select

getScale(id).select(option) or getScale(id).select(index) or getScale(id).select(option, “log”) Selects the specified option on the scale. If you pass a second argument (e.g. “log”) then the selection will be treated as if it were a manual selection, and will be recorded in the results file if you called log. Example: [js highlight=”24″ try=”true”]newText(“What programming language is PennController based …

dropdown.wait

getDropDown(id).wait() or getDropDown(id).wait(“first”) or getDropDown(id).wait(test) Waits until an option is selected from the drop-down list before proceeding. If you call wait(“first”), then if an option has already been selected by the time this command is evaluated, the next commands are evaluated and executed right away. If no option has been selected so far, the next …

dropdown.select

getDropDown(id).select( “option” ) Selects an option in the drop-down list. Nothing happens if the option passed as an argument does not exist. Example: [js highlight=”3″ try=”true”]newDropDown(“warmth”, “”) .settings.add(“hot”, “lukewarm”, “cold”) .select( “lukewarm” ) , newText(“Spring in Colorado is  “) .settings.after( getDropDown(“warmth”) ) .print()[/js] Creates a drop-down list containing the options hot, lukewarm and cold, selects …

dropdown.shuffle

getDropDown(id).shuffle() or getDropDown(id).shuffle( “keep selected” ) Shuffles the options that have been added to the DropDown so far. If you call shuffle before settings.add then it will have no effect. Passing an argument means that you want any option currently selected to remain selected after the shuffle (“keep selected” is simply given as an example—you …

timer.stop

getTimer(id).stop() (since version 1.1) Stops the timer early. Nothing happens if the timer has already elapsed. When timers are stopped early, the script proceeds in the same way as if they had elapsed on their own: any command associated to the timer is executed and any command on the timer is resolved. [js highlight=”8″ try=”true”] …

standard.refresh

getElement(id).refresh() (since PennController 1.1) Calls the command again on the element, while leaving it where it was printed last. This command is primarily useful if some aesthetic command does not take effect unless print is called afterward, but you do not want to call print because calling it when you need the aesthetic command to …

video.wait

getVideo(id).wait() or getVideo(id).wait(“first”) or getVideo(id).wait(test) Waits until the video resource is done playing before evaluating and executing the next commands. If you call wait(“first”), then if the video has already been played at least once by the time this command is evaluated, the next commands are evaluated and executed right away. If it was never …

video.stop

getVideo(id).stop() (since beta 0.3) Stops the playback of the video and goes back to the start of it, making it impossible to resume from the current position later. Example: [js highlight=”10″ try=”true”]newVideo(“skate”, “skate.mp4”) .print() .play() , newTimer(“preview”, 2500) .start() .wait() , getVideo(“skate”) .stop()[/js] Prints and starts playing the file sentence.mp4 and stops it after 2500ms. …