PennController for IBEX › Forums › Support › Adding an F/J key instead of a YES/NO scale
- This topic has 5 replies, 2 voices, and was last updated 4 years, 6 months ago by
UgurcanVurgun.
-
AuthorPosts
-
June 9, 2021 at 12:02 pm #7049
UgurcanVurgunParticipantHi Jeremy,
I am just showing participants a picture and ask a question. I had a YES/NO scale for the answer, then we decided to replace it with an F/J key (F for YES and J for NO). When I try to insert a newKey instead of a scale, all the canvas gets mixed up. How can I insert the newKey without disrupting the flow?
Thanks!
Ugurcan Vurgun
// Question 2 newImage("Q1Image", "https:" + row.ImageURL1) .size(703,398) .print() , newText("Q1", "<p style=font-size:22px;>Did you see this image in the video?</p>") .print() , newScale("Q1resp","<p style=font-size:22;><strong>Yes</strong></p>", "<p style=font-size:22;><strong>No</strong></p>") .settings.labelsPosition("left") .print() , newButton("Q1Submit", "Submit") .print() , getCanvas("testcanv") .remove(getVideo("eventTest")) .add("center at 50%","center at 50%", getImage("Q1Image")) .add("center at 50%",475, getText("Q1")) .add("center at 50%",525, getScale("Q1resp")) .add("center at 50%",675, getButton("Q1Submit")) , getButton("Q1Submit") .wait() , newVar("TQ1") .set(getScale("Q1resp")) , getScale("Q1resp") .test.selected() .success() .failure(newText("Q1NoResp", "<p style=font-size:22px;>Please make a selection.</p>").color("red").bold().print().log() , getButton("Q1Submit") .wait(getScale("Q2resp").test.selected()) , getVar("TQ1") .set(getScale("Q1resp")) , getText("Q1NoResp").remove())June 9, 2021 at 12:59 pm #7050
JeremyKeymasterHi Ugurcan,
Using a Key element drastically simplifies the logic: you just print a Text element that says “F: Yes, J: No” and create and wait for a Key element:
newImage("Q1Image", "https:" + row.ImageURL1).size(703,398) , newText("Q1", "<p style=font-size:22px;>Did you see this image in the video?</p>") , newText("Q1instr","<strong>F: Yes</strong> <strong>J: No</strong>") , getCanvas("testcanv") .remove(getVideo("eventTest")) .add("center at 50%","middle at 50%", getImage("Q1Image")) .add("center at 50%",475, getText("Q1")) .add("center at 50%",525, getText("Q1instr")) , newKey("Q1resp", "FJ").wait() , newVar("TQ1") .set(getKey("Q1resp"))Jeremy
June 9, 2021 at 1:14 pm #7051
UgurcanVurgunParticipantHi Jeremy,
Thank you. It works great!
ugurcan
June 9, 2021 at 8:35 pm #7052
UgurcanVurgunParticipantHi Jeremy,
I have just noticed that the result files show the selected keys as ‘undefined’. Do I have an error on the specific location of the setVar element? It seems like it doesn’t save the selection of the participant (A or L keys).
Thanks for your help.
Template("test.csv" , row => newTrial("test" , newVideo("eventTest", "https:" + row.VideoURL) .size(703,398) .disable(0.01) , newCanvas("testcanv",1366, 550) .add("center at 50%","center at 50%", getVideo("eventTest")) .center() .print() , newButton("testvideo","Play") .center() .print() .log() .wait() , getButton("testvideo") .remove() , getVideo("eventTest") .center() .play() .log() , getVideo("eventTest") .wait() , //Question1 newImage("Q1Image", "https:" + row.ImageURL1).size(703,398) , newText("Q1", "<p style=font-size:22px;>Did you see this image in the video?</p>") , newText("Q1instr","<strong>A: Yes</strong> <strong>L: No</strong>") , getCanvas("testcanv") .remove(getVideo("eventTest")) .add("center at 50%","middle at 50%", getImage("Q1Image")) .add("center at 50%",475, getText("Q1")) .add("center at 50%",525, getText("Q1instr")) , newKey("Q1resp", "AL") .wait() , newVar("TQ1") .set(getKey("Q1resp")) , newButton("Q1Submit", "Submit") .center() .print() , getButton("Q1Submit") .wait() .remove() , //Question2 newImage("Q2Image", "https:" + row.ImageURL2).size(703,398) , newText("Q2", "<p style=font-size:22px;>Did you see this image in the video?</p>") , newText("Q2instr","<strong>A: Yes</strong> <strong>L: No</strong>") , getCanvas("testcanv") .remove(getImage("Q1Image")) .remove(getText("Q1")) .remove(getText("Q1instr")) .add("center at 50%","middle at 50%", getImage("Q2Image")) .add("center at 50%",475, getText("Q2")) .add("center at 50%",525, getText("Q2instr")) , newKey("Q2resp", "AL") .wait() , newVar("TQ2") .set(getKey("Q2resp")) , newButton("Q2Submit","Submit") .center() .print() .wait() .remove() , //Question3 newImage("Q3Image", "https:" + row.ImageURL3).size(703,398) , newText("Q3", "<p style=font-size:22px;>Did you see this image in the video?</p>") , newText("Q3instr","<strong>A: Yes</strong> <strong>L: No</strong>") , getCanvas("testcanv") .remove(getImage("Q2Image")) .remove(getText("Q2")) .remove(getText("Q2instr")) .add("center at 50%","middle at 50%", getImage("Q3Image")) .add("center at 50%",475, getText("Q3")) .add("center at 50%",525, getText("Q3instr")) , newKey("Q3resp", "AL") .wait() , newVar("TQ3") .set(getKey("Q3resp")) , newButton("Q3Submit","Submit and Continue") .center() .print() .wait() .remove() , ).setOption("hideProgressBar",true) .log("ID", getVar("ID")) .log("Q1Response", getVar("TQ1")) .log("Q2Response", getVar("TQ2")) .log("Q3Response", getVar("TQ3")) .log("Group",row.Group) .log("Condition", row.Condition) .log("Item", row.Item) .log("Video", row.Video) .log("Source", row.Source) .log("Truncated", row.Truncated) .log("Image1", row.Image1) .log("CorrectResp1", row.CorrectResp1) .log("Image2", row.Image2) .log("CorrectResp2", row.CorrectResp2) .log("Image3", row.Image3) .log("CorrectResp3", row.CorrectResp3) )June 10, 2021 at 12:03 pm #7053
JeremyKeymasterHi Ugurcan,
Your Var elements are not
.global()so you cannot access them outside the parentheses of the containingnewTrialcommand. Make sure to call.global()on them before calling.setJeremy
June 11, 2021 at 5:09 pm #7054
UgurcanVurgunParticipantHi Jeremy,
thanks a lot for your help!
ugurcan
-
AuthorPosts
- You must be logged in to reply to this topic.