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 3 years, 8 months ago by
UgurcanVurgun.
-
AuthorPosts
-
June 9, 2021 at 12:02 pm #7049
UgurcanVurgun
ParticipantHi 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 #7050Jeremy
KeymasterHi 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 #7051UgurcanVurgun
ParticipantHi Jeremy,
Thank you. It works great!
ugurcan
June 9, 2021 at 8:35 pm #7052UgurcanVurgun
ParticipantHi 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 #7053Jeremy
KeymasterHi Ugurcan,
Your Var elements are not
.global()
so you cannot access them outside the parentheses of the containingnewTrial
command. Make sure to call.global()
on them before calling.set
Jeremy
June 11, 2021 at 5:09 pm #7054UgurcanVurgun
ParticipantHi Jeremy,
thanks a lot for your help!
ugurcan
-
AuthorPosts
- You must be logged in to reply to this topic.