mongrel
|
|
Group: Forum Members
Posts: 53,
Visits: 147
|
+x+xHi Dave, thanks a bunch! That goes pretty much in the direction of what we need! I have my frames now, and the dragging is working, however, the dropping is not working yet. I am working on my script at the moment, and I have a few questions concerning the example script you posted: What exactly is meant by p1_count and which expression part is "responsible" for the dropping? Sorry, I have never used expressions before. Attached, you can find what I have so far. test1.iqx is running (without dropping), test2.iqx is not running, because I started to write the expressions. Thank you again and in advance! M The expressions determine whether a given drop space is already occupied or not. If it is occupied, it is set to no longer be a drop target. If it is emptied again because the participant is revising her response / changing the ranking, it is set as a drop target again. Otherwise, you'd be in a situation where multiple stimuli could be dropped on the same target (that is: rank position in your case), and that's not what you need if I understand what you ultimately want to do correctly. The dragging and dropping is working fine in your test1.iqx script. You just need to keep running the trial, instead of just running a single instance. <data> / columns = (date,time,subject,blocknum,trialnum,blockcode,trialcode,trialduration,response,latency,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset, values.drop1, values.drop2, values.drop3, values.drop4, values.drop5, values.drop6, values.drop7, values.drop8, values.drop9, values.drop10) </data> VALUES <values> / drop1 = "" / drop2 = "" / drop3 = "" / drop4 = "" / drop5 = "" / drop6 = "" / drop7 = "" / drop8 = "" / drop9 = "" / drop10 = "" </values> TEXT ITEMS <text instruct> /items = (" Bitte sortieren Sie die folgenden körperlichen Merkmale und Fähigkeiten nach Wichtigkeit. Es geht darum, was für Sie bzgl. Ihres eigenen Körpers wichtig ist. Ziehen Sie bitte das wichtigste Merkmal oder die wichtigste Fähigkeit mit Hilfe der Maustaste in denobersten grauen Kasten. Das zweitwichtigste Merkmal kommt in den zweiten Kasten und so weiter. Hierbei gibt es kein Richtig oder Falsch. Was zählt ist, was Ihnen an Ihrem Körper besonders wichtig bzw. unwichtig ist. ") / position = (12%, 18%) </text> <text energy> /items = ("Energie") / position = (30%, 5%) / dropsource = true </text> <text health> /items = ("Gesundheit") / position = (30%, 15%) / dropsource = true </text> <text weight> /items = ("Gewicht") / position = (30%, 25%) / dropsource = true </text> <text bodystrength> /items = ("Körperkraft") / position = (30%, 35%) / dropsource = true </text> <text bodyattr> /items = ("Körperliche Attraktivität") / position = (30%, 45%) / dropsource = true </text> <text bodyfit> /items = ("Körperliche Fitness") / position = (30%, 55%) / dropsource = true </text> <text bodymeas> /items = ("Körpermaße, z.B.: Brust, Taille, Hüfte") / position = (30%, 65%) / dropsource = true </text> <text coordination> /items = ("Physische Koordination") / position = (30%, 75%) / dropsource = true </text> <text sexappeal> /items = ("Sex-Appeal") / position = (30%, 85%) / dropsource = true </text> <text vismusbody> /items = ("Sichtbar muskulöser Körper") / position = (30%, 95%) / dropsource = true </text> SHAPES <shape drop1> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 5%) / color = lightgray </shape> <shape drop2> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 15%) / color = lightgray </shape> <shape drop3> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 25%) / color = lightgray </shape> <shape drop4> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 35%) / color = lightgray </shape> <shape drop5> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 45%) / color = lightgray </shape> <shape drop6> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%,55%) / color = lightgray </shape> <shape drop7> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 65%) / color = lightgray </shape> <shape drop8> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 75%) / color = lightgray </shape> <shape drop9> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 85%) / color = lightgray </shape> <shape drop10> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 95%) / color = lightgray </shape> <shape drop1f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 5%) / color = black </shape> <shape drop2f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 15%) / color = black </shape> <shape drop3f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 25%) / color = black </shape> <shape drop4f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 35%) / color = black </shape> <shape drop5f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 45%) / color = black </shape> <shape drop6f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%,55%) / color = black </shape> <shape drop7f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 65%) / color = black </shape> <shape drop8f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 75%) / color = black </shape> <shape drop9f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 85%) / color = black </shape> <shape drop10f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 95%) / color = black </shape> <shape instrshape> /shape = rectangle / size = (450, 450) / position = (12%, 15%) / color = lightgray </shape> <trial SOQ> / stimulusframes = [1= instrshape, instruct; 2 = drop1f, drop2f, drop3f, drop4f, drop5f, drop6f, drop7f, drop8f, drop9f, drop10f; 3= drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10) / branch = [ trial.SOQ ]</trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> Oh wow, that wasn`t too difficult! Thank you so much!
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+xHi Dave, thanks a bunch! That goes pretty much in the direction of what we need! I have my frames now, and the dragging is working, however, the dropping is not working yet. I am working on my script at the moment, and I have a few questions concerning the example script you posted: What exactly is meant by p1_count and which expression part is "responsible" for the dropping? Sorry, I have never used expressions before. Attached, you can find what I have so far. test1.iqx is running (without dropping), test2.iqx is not running, because I started to write the expressions. Thank you again and in advance! M The expressions determine whether a given drop space is already occupied or not. If it is occupied, it is set to no longer be a drop target. If it is emptied again because the participant is revising her response / changing the ranking, it is set as a drop target again. Otherwise, you'd be in a situation where multiple stimuli could be dropped on the same target (that is: rank position in your case), and that's not what you need if I understand what you ultimately want to do correctly. The dragging and dropping is working fine in your test1.iqx script. You just need to keep running the trial, instead of just running a single instance. <data> / columns = (date,time,subject,blocknum,trialnum,blockcode,trialcode,trialduration,response,latency,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset, values.drop1, values.drop2, values.drop3, values.drop4, values.drop5, values.drop6, values.drop7, values.drop8, values.drop9, values.drop10) </data> VALUES <values> / drop1 = "" / drop2 = "" / drop3 = "" / drop4 = "" / drop5 = "" / drop6 = "" / drop7 = "" / drop8 = "" / drop9 = "" / drop10 = "" </values> TEXT ITEMS <text instruct> /items = (" Bitte sortieren Sie die folgenden körperlichen Merkmale und Fähigkeiten nach Wichtigkeit. Es geht darum, was für Sie bzgl. Ihres eigenen Körpers wichtig ist. Ziehen Sie bitte das wichtigste Merkmal oder die wichtigste Fähigkeit mit Hilfe der Maustaste in denobersten grauen Kasten. Das zweitwichtigste Merkmal kommt in den zweiten Kasten und so weiter. Hierbei gibt es kein Richtig oder Falsch. Was zählt ist, was Ihnen an Ihrem Körper besonders wichtig bzw. unwichtig ist. ") / position = (12%, 18%) </text> <text energy> /items = ("Energie") / position = (30%, 5%) / dropsource = true </text> <text health> /items = ("Gesundheit") / position = (30%, 15%) / dropsource = true </text> <text weight> /items = ("Gewicht") / position = (30%, 25%) / dropsource = true </text> <text bodystrength> /items = ("Körperkraft") / position = (30%, 35%) / dropsource = true </text> <text bodyattr> /items = ("Körperliche Attraktivität") / position = (30%, 45%) / dropsource = true </text> <text bodyfit> /items = ("Körperliche Fitness") / position = (30%, 55%) / dropsource = true </text> <text bodymeas> /items = ("Körpermaße, z.B.: Brust, Taille, Hüfte") / position = (30%, 65%) / dropsource = true </text> <text coordination> /items = ("Physische Koordination") / position = (30%, 75%) / dropsource = true </text> <text sexappeal> /items = ("Sex-Appeal") / position = (30%, 85%) / dropsource = true </text> <text vismusbody> /items = ("Sichtbar muskulöser Körper") / position = (30%, 95%) / dropsource = true </text> SHAPES <shape drop1> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 5%) / color = lightgray </shape> <shape drop2> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 15%) / color = lightgray </shape> <shape drop3> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 25%) / color = lightgray </shape> <shape drop4> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 35%) / color = lightgray </shape> <shape drop5> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 45%) / color = lightgray </shape> <shape drop6> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%,55%) / color = lightgray </shape> <shape drop7> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 65%) / color = lightgray </shape> <shape drop8> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 75%) / color = lightgray </shape> <shape drop9> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 85%) / color = lightgray </shape> <shape drop10> / shape = rectangle / size = (250, 60) / droptarget = true / position = (70%, 95%) / color = lightgray </shape> <shape drop1f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 5%) / color = black </shape> <shape drop2f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 15%) / color = black </shape> <shape drop3f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 25%) / color = black </shape> <shape drop4f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 35%) / color = black </shape> <shape drop5f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 45%) / color = black </shape> <shape drop6f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%,55%) / color = black </shape> <shape drop7f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 65%) / color = black </shape> <shape drop8f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 75%) / color = black </shape> <shape drop9f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 85%) / color = black </shape> <shape drop10f> / shape = rectangle / size = (255, 65) / droptarget = true / position = (70%, 95%) / color = black </shape> <shape instrshape> /shape = rectangle / size = (450, 450) / position = (12%, 15%) / color = lightgray </shape> <trial SOQ> / stimulusframes = [1= instrshape, instruct; 2 = drop1f, drop2f, drop3f, drop4f, drop5f, drop6f, drop7f, drop8f, drop9f, drop10f; 3= drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10) / branch = [ trial.SOQ ]</trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt>
|
|
|
mongrel
|
|
Group: Forum Members
Posts: 53,
Visits: 147
|
+x+x+x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thank you, Dave! +x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thanks a lot, Dave! Thanks for the files. Two things: - To create a "frame" around a rectangular <shape>, you need to put another, slightly larger rectangular <shape> with a different color behind it. - Your drag & drop doesn't work because you've specified the drop sources as valid responses. It's the drop targets (drop1 to drop10) that need to be the valid responses. Overall, this example here should be a good model for what you want to do: <block myblock> / trials = [1=start] </block> <data> / columns = (date,time,group,subject,build,blocknum,trialnum,blockcode,trialcode,pretrialpause,posttrialpause,trialduration,trialtimeout,response,correct,latency,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset, values.box1, values.box2, values.box3, values.box4, values.box5, values.box6) </data> <values> / box1 = "" / box2 = "" / box3 = "" / box4 = "" / box5 = "" / box6 = "" </values> <trial mytrial> / ontrialbegin = [ shape.pos1.droptarget = expressions.available_p1_slots; shape.pos2.droptarget = expressions.available_p2_slots; shape.pos3.droptarget = expressions.available_p3_slots; shape.pos4.droptarget = expressions.available_p4_slots; shape.pos5.droptarget = expressions.available_p5_slots; shape.pos6.droptarget = expressions.available_p6_slots; ] / ontrialend = [ shape.pos1.droptarget = expressions.available_p1_slots; shape.pos2.droptarget = expressions.available_p2_slots; shape.pos3.droptarget = expressions.available_p3_slots; shape.pos4.droptarget = expressions.available_p4_slots; shape.pos5.droptarget = expressions.available_p5_slots; shape.pos6.droptarget = expressions.available_p6_slots; ] / stimulustimes = [0 = pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL] / validresponse = (pos1,pos2,pos3,pos4,pos5,pos6) / isvalidresponse = [ if (trial.mytrial.response == "pos1") { values.p1_count += 1; shape.pos1.droptarget; } else if (trial.mytrial.response == "pos2") { values.p2_count += 1; shape.pos2.droptarget; } else if (trial.mytrial.response == "pos3") { values.p3_count += 1; shape.pos3.droptarget; } else if (trial.mytrial.response == "pos4") { values.p4_count += 1; shape.pos4.droptarget; } else if (trial.mytrial.response == "pos5") { values.p5_count += 1; shape.pos5.droptarget; } else if (trial.mytrial.response == "pos6") { values.p6_count += 1; shape.pos6.droptarget; } else true; ] / inputdevice = dragdrop / branch = [ if ((expressions.available_p1_slots + expressions.available_p2_slots + expressions.available_p3_slots + expressions.available_p4_slots + expressions.available_p5_slots + expressions.available_p6_slots) <= 0) trial.yousure else trial.mytrial ] </trial> <expressions> / available_p1_slots = if( (text.A.hposition==25 && text.A.vposition==80) || (text.B.hposition==25 && text.B.vposition==80) || (text.C.hposition==25 && text.C.vposition==80) || (text.D.hposition==25 && text.D.vposition==80) || (text.E.hposition==25 && text.E.vposition==80) || (text.F.hposition==25 && text.F.vposition==80) || (text.G.hposition==25 && text.G.vposition==80) || (text.H.hposition==25 && text.H.vposition==80) || (text.I.hposition==25 && text.I.vposition==80) || (text.J.hposition==25 && text.J.vposition==80) || (text.K.hposition==25 && text.K.vposition==80) || (text.L.hposition==25 && text.L.vposition==80) ) false else true; / available_p2_slots = if( (text.A.hposition==35 && text.A.vposition==80) || (text.B.hposition==35 && text.B.vposition==80) || (text.C.hposition==35 && text.C.vposition==80) || (text.D.hposition==35 && text.D.vposition==80) || (text.E.hposition==35 && text.E.vposition==80) || (text.F.hposition==35 && text.F.vposition==80) || (text.G.hposition==35 && text.G.vposition==80) || (text.H.hposition==35 && text.H.vposition==80) || (text.I.hposition==35 && text.I.vposition==80) || (text.J.hposition==35 && text.J.vposition==80) || (text.K.hposition==35 && text.K.vposition==80) || (text.L.hposition==35 && text.L.vposition==80) ) false else true; / available_p3_slots = if( (text.A.hposition==45 && text.A.vposition==80) || (text.B.hposition==45 && text.B.vposition==80) || (text.C.hposition==45 && text.C.vposition==80) || (text.D.hposition==45 && text.D.vposition==80) || (text.E.hposition==45 && text.E.vposition==80) || (text.F.hposition==45 && text.F.vposition==80) || (text.G.hposition==45 && text.G.vposition==80) || (text.H.hposition==45 && text.H.vposition==80) || (text.I.hposition==45 && text.I.vposition==80) || (text.J.hposition==45 && text.J.vposition==80) || (text.K.hposition==45 && text.K.vposition==80) || (text.L.hposition==45 && text.L.vposition==80) ) false else true; / available_p4_slots = if( (text.A.hposition==55 && text.A.vposition==80) || (text.B.hposition==55 && text.B.vposition==80) || (text.C.hposition==55 && text.C.vposition==80) || (text.D.hposition==55 && text.D.vposition==80) || (text.E.hposition==55 && text.E.vposition==80) || (text.F.hposition==55 && text.F.vposition==80) || (text.G.hposition==55 && text.G.vposition==80) || (text.H.hposition==55 && text.H.vposition==80) || (text.I.hposition==55 && text.I.vposition==80) || (text.J.hposition==55 && text.J.vposition==80) || (text.K.hposition==55 && text.K.vposition==80) || (text.L.hposition==55 && text.L.vposition==80) ) false else true; / available_p5_slots = if( (text.A.hposition==65 && text.A.vposition==80) || (text.B.hposition==65 && text.B.vposition==80) || (text.C.hposition==65 && text.C.vposition==80) || (text.D.hposition==65 && text.D.vposition==80) || (text.E.hposition==65 && text.E.vposition==80) || (text.F.hposition==65 && text.F.vposition==80) || (text.G.hposition==65 && text.G.vposition==80) || (text.H.hposition==65 && text.H.vposition==80) || (text.I.hposition==65 && text.I.vposition==80) || (text.J.hposition==65 && text.J.vposition==80) || (text.K.hposition==65 && text.K.vposition==80) || (text.L.hposition==65 && text.L.vposition==80) ) false else true; / available_p6_slots = if( (text.A.hposition==75 && text.A.vposition==80) || (text.B.hposition==75 && text.B.vposition==80) || (text.C.hposition==75 && text.C.vposition==80) || (text.D.hposition==75 && text.D.vposition==80) || (text.E.hposition==75 && text.E.vposition==80) || (text.F.hposition==75 && text.F.vposition==80) || (text.G.hposition==75 && text.G.vposition==80) || (text.H.hposition==75 && text.H.vposition==80) || (text.I.hposition==75 && text.I.vposition==80) || (text.J.hposition==75 && text.J.vposition==80) || (text.K.hposition==75 && text.K.vposition==80) || (text.L.hposition==75 && text.L.vposition==80) ) false else true; </expressions> <expressions> / a = if (text.A.hposition == 25 && text.A.vposition == 80) { values.box1 = "A"; } else if (text.A.hposition == 35 && text.A.vposition == 80) { values.box2 = "A"; } else if (text.A.hposition == 45 && text.A.vposition == 80) { values.box3 = "A"; } else if (text.A.hposition == 55 && text.A.vposition == 80) { values.box4 = "A"; } else if (text.A.hposition == 65 && text.A.vposition == 80) { values.box5 = "A"; } else if (text.A.hposition == 75 && text.A.vposition == 80) { values.box6 = "A"; }; / b = if (text.B.hposition == 25 && text.B.vposition == 80) { values.box1 = "B"; } else if (text.B.hposition == 35 && text.B.vposition == 80) { values.box2 = "B"; } else if (text.B.hposition == 45 && text.B.vposition == 80) { values.box3 = "B"; } else if (text.B.hposition == 55 && text.B.vposition == 80) { values.box4 = "B"; } else if (text.B.hposition == 65 && text.B.vposition == 80) { values.box5 = "B"; } else if (text.B.hposition == 75 && text.B.vposition == 80) { values.box6 = "B"; }; / c = if (text.C.hposition == 25 && text.C.vposition == 80) { values.Box1 = "C"; } else if (text.C.hposition == 35 && text.C.vposition == 80) { values.Box2 = "C"; } else if (text.C.hposition == 45 && text.C.vposition == 80) { values.Box3 = "C"; } else if (text.C.hposition == 55 && text.C.vposition == 80) { values.Box4 = "C"; } else if (text.C.hposition == 65 && text.C.vposition == 80) { values.Box5 = "C"; } else if (text.C.hposition == 75 && text.C.vposition == 80) { values.Box6 = "C"; }; / d = if (text.D.hposition == 25 && text.D.vposition == 80) { values.Box1 = "D"; } else if (text.D.hposition == 35 && text.D.vposition == 80) { values.Box2 = "D"; } else if (text.D.hposition == 45 && text.D.vposition == 80) { values.Box3 = "D"; } else if (text.D.hposition == 55 && text.D.vposition == 80) { values.Box4 = "D"; } else if (text.D.hposition == 65 && text.D.vposition == 80) { values.Box5 = "D"; } else if (text.D.hposition == 75 && text.D.vposition == 80) { values.Box6 = "D"; } / e = if (text.E.hposition == 25 && text.E.vposition == 80) { values.Box1 = "E"; } else if (text.E.hposition == 35 && text.E.vposition == 80) { values.Box2 = "E"; } else if (text.E.hposition == 45 && text.E.vposition == 80) { values.Box3 = "E"; } else if (text.E.hposition == 55 && text.E.vposition == 80) { values.Box4 = "E"; } else if (text.E.hposition == 65 && text.E.vposition == 80) { values.Box5 = "E"; } else if (text.E.hposition == 75 && text.E.vposition == 80) { values.Box6 = "E"; }; / f = if (text.F.hposition == 25 && text.F.vposition == 80) { values.Box1 = "F"; } else if (text.F.hposition == 35 && text.F.vposition == 80) { values.Box2 = "F"; } else if (text.F.hposition == 45 && text.F.vposition == 80) { values.Box3 = "F"; } else if (text.F.hposition == 55 && text.F.vposition == 80) { values.Box4 = "F"; } else if (text.F.hposition == 65 && text.F.vposition == 80) { values.Box5 = "F"; } else if (text.F.hposition == 75 && text.F.vposition == 80) { values.Box6 = "F"; }; / g = if (text.G.hposition == 25 && text.G.vposition == 80) { values.Box1 = "G"; } else if (text.G.hposition == 35 && text.G.vposition == 80) { values.Box2 = "G"; } else if (text.G.hposition == 45 && text.G.vposition == 80) { values.Box3 = "G"; } else if (text.G.hposition == 55 && text.G.vposition == 80) { values.Box4 = "G"; } else if (text.G.hposition == 65 && text.G.vposition == 80) { values.Box5 = "G"; } else if (text.G.hposition == 75 && text.G.vposition == 80) { values.Box6 = "G"; }; / h = if (text.H.hposition == 25 && text.H.vposition == 80) { values.Box1 = "H"; } else if (text.H.hposition == 35 && text.H.vposition == 80) { values.Box2 = "H"; } else if (text.H.hposition == 45 && text.H.vposition == 80) { values.Box3 = "H"; } else if (text.H.hposition == 55 && text.H.vposition == 80) { values.Box4 = "H"; } else if (text.H.hposition == 65 && text.H.vposition == 80) { values.Box5 = "H"; } else if (text.H.hposition == 75 && text.H.vposition == 80) { values.Box6 = "H"; }; / i = if (text.I.hposition == 25 && text.I.vposition == 80) { values.Box1 = "I"; } else if (text.I.hposition == 35 && text.I.vposition == 80) { values.Box2 = "I"; } else if (text.I.hposition == 45 && text.I.vposition == 80) { values.Box3 = "I"; } else if (text.I.hposition == 55 && text.I.vposition == 80) { values.Box4 = "I"; } else if (text.I.hposition == 65 && text.I.vposition == 80) { values.Box5 = "I"; } else if (text.I.hposition == 75 && text.I.vposition == 80) { values.Box6 = "I"; }; / j = if (text.J.hposition == 25 && text.J.vposition == 80) { values.Box1 = "J"; } else if (text.J.hposition == 35 && text.J.vposition == 80) { values.Box2 = "J"; } else if (text.J.hposition == 45 && text.J.vposition == 80) { values.Box3 = "J"; } else if (text.J.hposition == 55 && text.J.vposition == 80) { values.Box4 = "J"; } else if (text.J.hposition == 65 && text.J.vposition == 80) { values.Box5 = "J"; } else if (text.J.hposition == 75 && text.J.vposition == 80) { values.Box6 = "J"; }; / k = if (text.K.hposition == 25 && text.K.vposition == 80) { values.Box1 = "K"; } else if (text.K.hposition == 35 && text.K.vposition == 80) { values.Box2 = "K"; } else if (text.K.hposition == 45 && text.K.vposition == 80) { values.Box3 = "K"; } else if (text.K.hposition == 55 && text.K.vposition == 80) { values.Box4 = "K"; } else if (text.K.hposition == 65 && text.K.vposition == 80) { values.Box5 = "K"; } else if (text.K.hposition == 75 && text.K.vposition == 80) { values.Box6 = "K"; }; / l = if (text.L.hposition == 25 && text.L.vposition == 80) { values.Box1 = "L"; } else if (text.L.hposition == 35 && text.L.vposition == 80) { values.Box2 = "L"; } else if (text.L.hposition == 45 && text.L.vposition == 80) { values.Box3 = "L"; } else if (text.L.hposition == 55 && text.L.vposition == 80) { values.Box4 = "L"; } else if (text.L.hposition == 65 && text.L.vposition == 80) { values.Box5 = "L"; } else if (text.L.hposition == 75 && text.L.vposition == 80) { values.Box6 = "L"; }; / check_all = { expressions.a; expressions.b; expressions.c; expressions.d; expressions.e; expressions.f; expressions.g; expressions.h; expressions.i; expressions.j; expressions.k; expressions.l; } </expressions> <values> / p1_count = 0 / p2_count = 0 / p3_count = 0 / p4_count = 0 / p5_count = 0 / p6_count = 0 </values> <trial start> / ontrialbegin = [ values.p1_count=0; values.p2_count=0; values.p3_count=0; values.p4_count=0; values.p5_count=0; values.p6_count=0; text.A.hposition = 25%; text.A.vposition = 40%; text.B.hposition = 35%; text.B.vposition = 40%; text.C.hposition = 45%; text.C.vposition = 40%; text.D.hposition = 55%; text.D.vposition = 40%; text.E.hposition = 65%; text.E.vposition = 40%; text.F.hposition = 75%; text.F.vposition = 40%; text.G.hposition = 25%; text.G.vposition = 60%; text.H.hposition = 35%; text.H.vposition = 60%; text.I.hposition = 45%; text.I.vposition = 60%; text.J.hposition = 55%; text.J.vposition = 60%; text.K.hposition = 65%; text.K.vposition = 60%; text.L.hposition = 75%; text.L.vposition = 60%; ] / branch = [ trial.mytrial ] / trialduration = 0 </trial> <trial yousure> / stimulusframes = [1=pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL,endtext] / validresponse = (30,38) ] / branch = [ if (trial.yousure.response == 30) trial.start else trial.end ] </trial> <trial end> / ontrialbegin = [ expressions.check_all; ] / stimulusframes = [1=pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL,endtext2] / validresponse = (28) </trial> <text endtext> / items = ("Press A if you are NOT happy with the order of the shapes above, otherwise press L.") / position = (50,92) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) </text> <text endtext2> / items = ("Press ENTER to continue.") / position = (50,92) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) </text> <text RVSL> / items = RVSL / position = (50,32) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) /txcolor = black /txbgcolor = (transparent) /resetinterval = 3 /size = (80%,50%) / txbgcolor = transparent </text> <item RVSL> /1 = "Please rank the shapes you saw by the order that you think they appeared. For example, put the shape that you think was shown LEAST often in the first box and the shape you think was presented second LEAST often in the second box and so on, until the last box where you will put the shape you think you saw the MOST often. If you don’t think a shape was presented to you at all, please do not click on that shape." </item> <text A> / items = ("A.jpg") / position = (25,40) / dropsource = true </text> <text B> / items = ("B.jpg") / position = (35,40) / dropsource = true </text> <text C> / items = ("C.jpg") / position = (45,40) / dropsource = true </text> <text D> / items = ("D.jpg") / position = (55,40) / dropsource = true </text> <text E> / items = ("E.jpg") / position = (65,40) / dropsource = true </text> <text F> / items = ("F.jpg") / position = (75,40) / dropsource = true </text> <text G> / items = ("G.jpg") / position = (25,60) / dropsource = true </text> <text H> / items = ("H.jpg") / position = (35,60) / dropsource = true </text> <text I> / items = ("I.jpg") / position = (45,60) / dropsource = true </text> <text J> / items = ("J.jpg") / position = (55,60) / dropsource = true </text> <text K> / items = ("K.jpg") / position = (65,60) / dropsource = true </text> <text L> / items = ("L.jpg") / position = (75,60) / dropsource = true </text> <shape pos1> / hposition = 25 / vposition = 80 / dropposition = (25,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos2> / hposition = 35 / vposition = 80 / dropposition = (35,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos3> / hposition = 45 / vposition = 80 / dropposition = (45,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos4> / hposition = 55 / vposition = 80 / dropposition = (55,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos5> / hposition = 65 / vposition = 80 / dropposition = (65,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos6> / hposition = 75 / vposition = 80 / dropposition = (75,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape posrep1> / hposition = 25 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2> / hposition = 35 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep3> / hposition = 45 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep4> / hposition = 55 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep5> / hposition = 65 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep6> / hposition = 75 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_1> / hposition = 25 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_2> / hposition = 35 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_3> / hposition = 45 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_4> / hposition = 55 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_5> / hposition = 65 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_6> / hposition = 75 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> Hi Dave, thanks a bunch! That goes pretty much in the direction of what we need! I have my frames now, and the dragging is working, however, the dropping is not working yet. I am working on my script at the moment, and I have a few questions concerning the example script you posted: What exactly is meant by p1_count and which expression part is "responsible" for the dropping? Sorry, I have never used expressions before. Attached, you can find what I have so far. test1.iqx is running (without dropping), test2.iqx is not running, because I started to write the expressions. Thank you again and in advance! M
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thank you, Dave! +x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thanks a lot, Dave! Thanks for the files. Two things: - To create a "frame" around a rectangular <shape>, you need to put another, slightly larger rectangular <shape> with a different color behind it. - Your drag & drop doesn't work because you've specified the drop sources as valid responses. It's the drop targets (drop1 to drop10) that need to be the valid responses. Overall, this example here should be a good model for what you want to do: <block myblock> / trials = [1=start] </block> <data> / columns = (date,time,group,subject,build,blocknum,trialnum,blockcode,trialcode,pretrialpause,posttrialpause,trialduration,trialtimeout,response,correct,latency,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset,stimulusnumber,stimulusitem,stimulusonset, values.box1, values.box2, values.box3, values.box4, values.box5, values.box6) </data> <values> / box1 = "" / box2 = "" / box3 = "" / box4 = "" / box5 = "" / box6 = "" </values> <trial mytrial> / ontrialbegin = [ shape.pos1.droptarget = expressions.available_p1_slots; shape.pos2.droptarget = expressions.available_p2_slots; shape.pos3.droptarget = expressions.available_p3_slots; shape.pos4.droptarget = expressions.available_p4_slots; shape.pos5.droptarget = expressions.available_p5_slots; shape.pos6.droptarget = expressions.available_p6_slots; ] / ontrialend = [ shape.pos1.droptarget = expressions.available_p1_slots; shape.pos2.droptarget = expressions.available_p2_slots; shape.pos3.droptarget = expressions.available_p3_slots; shape.pos4.droptarget = expressions.available_p4_slots; shape.pos5.droptarget = expressions.available_p5_slots; shape.pos6.droptarget = expressions.available_p6_slots; ] / stimulustimes = [0 = pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL] / validresponse = (pos1,pos2,pos3,pos4,pos5,pos6) / isvalidresponse = [ if (trial.mytrial.response == "pos1") { values.p1_count += 1; shape.pos1.droptarget; } else if (trial.mytrial.response == "pos2") { values.p2_count += 1; shape.pos2.droptarget; } else if (trial.mytrial.response == "pos3") { values.p3_count += 1; shape.pos3.droptarget; } else if (trial.mytrial.response == "pos4") { values.p4_count += 1; shape.pos4.droptarget; } else if (trial.mytrial.response == "pos5") { values.p5_count += 1; shape.pos5.droptarget; } else if (trial.mytrial.response == "pos6") { values.p6_count += 1; shape.pos6.droptarget; } else true; ] / inputdevice = dragdrop / branch = [ if ((expressions.available_p1_slots + expressions.available_p2_slots + expressions.available_p3_slots + expressions.available_p4_slots + expressions.available_p5_slots + expressions.available_p6_slots) <= 0) trial.yousure else trial.mytrial ] </trial> <expressions> / available_p1_slots = if( (text.A.hposition==25 && text.A.vposition==80) || (text.B.hposition==25 && text.B.vposition==80) || (text.C.hposition==25 && text.C.vposition==80) || (text.D.hposition==25 && text.D.vposition==80) || (text.E.hposition==25 && text.E.vposition==80) || (text.F.hposition==25 && text.F.vposition==80) || (text.G.hposition==25 && text.G.vposition==80) || (text.H.hposition==25 && text.H.vposition==80) || (text.I.hposition==25 && text.I.vposition==80) || (text.J.hposition==25 && text.J.vposition==80) || (text.K.hposition==25 && text.K.vposition==80) || (text.L.hposition==25 && text.L.vposition==80) ) false else true; / available_p2_slots = if( (text.A.hposition==35 && text.A.vposition==80) || (text.B.hposition==35 && text.B.vposition==80) || (text.C.hposition==35 && text.C.vposition==80) || (text.D.hposition==35 && text.D.vposition==80) || (text.E.hposition==35 && text.E.vposition==80) || (text.F.hposition==35 && text.F.vposition==80) || (text.G.hposition==35 && text.G.vposition==80) || (text.H.hposition==35 && text.H.vposition==80) || (text.I.hposition==35 && text.I.vposition==80) || (text.J.hposition==35 && text.J.vposition==80) || (text.K.hposition==35 && text.K.vposition==80) || (text.L.hposition==35 && text.L.vposition==80) ) false else true; / available_p3_slots = if( (text.A.hposition==45 && text.A.vposition==80) || (text.B.hposition==45 && text.B.vposition==80) || (text.C.hposition==45 && text.C.vposition==80) || (text.D.hposition==45 && text.D.vposition==80) || (text.E.hposition==45 && text.E.vposition==80) || (text.F.hposition==45 && text.F.vposition==80) || (text.G.hposition==45 && text.G.vposition==80) || (text.H.hposition==45 && text.H.vposition==80) || (text.I.hposition==45 && text.I.vposition==80) || (text.J.hposition==45 && text.J.vposition==80) || (text.K.hposition==45 && text.K.vposition==80) || (text.L.hposition==45 && text.L.vposition==80) ) false else true; / available_p4_slots = if( (text.A.hposition==55 && text.A.vposition==80) || (text.B.hposition==55 && text.B.vposition==80) || (text.C.hposition==55 && text.C.vposition==80) || (text.D.hposition==55 && text.D.vposition==80) || (text.E.hposition==55 && text.E.vposition==80) || (text.F.hposition==55 && text.F.vposition==80) || (text.G.hposition==55 && text.G.vposition==80) || (text.H.hposition==55 && text.H.vposition==80) || (text.I.hposition==55 && text.I.vposition==80) || (text.J.hposition==55 && text.J.vposition==80) || (text.K.hposition==55 && text.K.vposition==80) || (text.L.hposition==55 && text.L.vposition==80) ) false else true; / available_p5_slots = if( (text.A.hposition==65 && text.A.vposition==80) || (text.B.hposition==65 && text.B.vposition==80) || (text.C.hposition==65 && text.C.vposition==80) || (text.D.hposition==65 && text.D.vposition==80) || (text.E.hposition==65 && text.E.vposition==80) || (text.F.hposition==65 && text.F.vposition==80) || (text.G.hposition==65 && text.G.vposition==80) || (text.H.hposition==65 && text.H.vposition==80) || (text.I.hposition==65 && text.I.vposition==80) || (text.J.hposition==65 && text.J.vposition==80) || (text.K.hposition==65 && text.K.vposition==80) || (text.L.hposition==65 && text.L.vposition==80) ) false else true; / available_p6_slots = if( (text.A.hposition==75 && text.A.vposition==80) || (text.B.hposition==75 && text.B.vposition==80) || (text.C.hposition==75 && text.C.vposition==80) || (text.D.hposition==75 && text.D.vposition==80) || (text.E.hposition==75 && text.E.vposition==80) || (text.F.hposition==75 && text.F.vposition==80) || (text.G.hposition==75 && text.G.vposition==80) || (text.H.hposition==75 && text.H.vposition==80) || (text.I.hposition==75 && text.I.vposition==80) || (text.J.hposition==75 && text.J.vposition==80) || (text.K.hposition==75 && text.K.vposition==80) || (text.L.hposition==75 && text.L.vposition==80) ) false else true; </expressions> <expressions> / a = if (text.A.hposition == 25 && text.A.vposition == 80) { values.box1 = "A"; } else if (text.A.hposition == 35 && text.A.vposition == 80) { values.box2 = "A"; } else if (text.A.hposition == 45 && text.A.vposition == 80) { values.box3 = "A"; } else if (text.A.hposition == 55 && text.A.vposition == 80) { values.box4 = "A"; } else if (text.A.hposition == 65 && text.A.vposition == 80) { values.box5 = "A"; } else if (text.A.hposition == 75 && text.A.vposition == 80) { values.box6 = "A"; }; / b = if (text.B.hposition == 25 && text.B.vposition == 80) { values.box1 = "B"; } else if (text.B.hposition == 35 && text.B.vposition == 80) { values.box2 = "B"; } else if (text.B.hposition == 45 && text.B.vposition == 80) { values.box3 = "B"; } else if (text.B.hposition == 55 && text.B.vposition == 80) { values.box4 = "B"; } else if (text.B.hposition == 65 && text.B.vposition == 80) { values.box5 = "B"; } else if (text.B.hposition == 75 && text.B.vposition == 80) { values.box6 = "B"; }; / c = if (text.C.hposition == 25 && text.C.vposition == 80) { values.Box1 = "C"; } else if (text.C.hposition == 35 && text.C.vposition == 80) { values.Box2 = "C"; } else if (text.C.hposition == 45 && text.C.vposition == 80) { values.Box3 = "C"; } else if (text.C.hposition == 55 && text.C.vposition == 80) { values.Box4 = "C"; } else if (text.C.hposition == 65 && text.C.vposition == 80) { values.Box5 = "C"; } else if (text.C.hposition == 75 && text.C.vposition == 80) { values.Box6 = "C"; }; / d = if (text.D.hposition == 25 && text.D.vposition == 80) { values.Box1 = "D"; } else if (text.D.hposition == 35 && text.D.vposition == 80) { values.Box2 = "D"; } else if (text.D.hposition == 45 && text.D.vposition == 80) { values.Box3 = "D"; } else if (text.D.hposition == 55 && text.D.vposition == 80) { values.Box4 = "D"; } else if (text.D.hposition == 65 && text.D.vposition == 80) { values.Box5 = "D"; } else if (text.D.hposition == 75 && text.D.vposition == 80) { values.Box6 = "D"; } / e = if (text.E.hposition == 25 && text.E.vposition == 80) { values.Box1 = "E"; } else if (text.E.hposition == 35 && text.E.vposition == 80) { values.Box2 = "E"; } else if (text.E.hposition == 45 && text.E.vposition == 80) { values.Box3 = "E"; } else if (text.E.hposition == 55 && text.E.vposition == 80) { values.Box4 = "E"; } else if (text.E.hposition == 65 && text.E.vposition == 80) { values.Box5 = "E"; } else if (text.E.hposition == 75 && text.E.vposition == 80) { values.Box6 = "E"; }; / f = if (text.F.hposition == 25 && text.F.vposition == 80) { values.Box1 = "F"; } else if (text.F.hposition == 35 && text.F.vposition == 80) { values.Box2 = "F"; } else if (text.F.hposition == 45 && text.F.vposition == 80) { values.Box3 = "F"; } else if (text.F.hposition == 55 && text.F.vposition == 80) { values.Box4 = "F"; } else if (text.F.hposition == 65 && text.F.vposition == 80) { values.Box5 = "F"; } else if (text.F.hposition == 75 && text.F.vposition == 80) { values.Box6 = "F"; }; / g = if (text.G.hposition == 25 && text.G.vposition == 80) { values.Box1 = "G"; } else if (text.G.hposition == 35 && text.G.vposition == 80) { values.Box2 = "G"; } else if (text.G.hposition == 45 && text.G.vposition == 80) { values.Box3 = "G"; } else if (text.G.hposition == 55 && text.G.vposition == 80) { values.Box4 = "G"; } else if (text.G.hposition == 65 && text.G.vposition == 80) { values.Box5 = "G"; } else if (text.G.hposition == 75 && text.G.vposition == 80) { values.Box6 = "G"; }; / h = if (text.H.hposition == 25 && text.H.vposition == 80) { values.Box1 = "H"; } else if (text.H.hposition == 35 && text.H.vposition == 80) { values.Box2 = "H"; } else if (text.H.hposition == 45 && text.H.vposition == 80) { values.Box3 = "H"; } else if (text.H.hposition == 55 && text.H.vposition == 80) { values.Box4 = "H"; } else if (text.H.hposition == 65 && text.H.vposition == 80) { values.Box5 = "H"; } else if (text.H.hposition == 75 && text.H.vposition == 80) { values.Box6 = "H"; }; / i = if (text.I.hposition == 25 && text.I.vposition == 80) { values.Box1 = "I"; } else if (text.I.hposition == 35 && text.I.vposition == 80) { values.Box2 = "I"; } else if (text.I.hposition == 45 && text.I.vposition == 80) { values.Box3 = "I"; } else if (text.I.hposition == 55 && text.I.vposition == 80) { values.Box4 = "I"; } else if (text.I.hposition == 65 && text.I.vposition == 80) { values.Box5 = "I"; } else if (text.I.hposition == 75 && text.I.vposition == 80) { values.Box6 = "I"; }; / j = if (text.J.hposition == 25 && text.J.vposition == 80) { values.Box1 = "J"; } else if (text.J.hposition == 35 && text.J.vposition == 80) { values.Box2 = "J"; } else if (text.J.hposition == 45 && text.J.vposition == 80) { values.Box3 = "J"; } else if (text.J.hposition == 55 && text.J.vposition == 80) { values.Box4 = "J"; } else if (text.J.hposition == 65 && text.J.vposition == 80) { values.Box5 = "J"; } else if (text.J.hposition == 75 && text.J.vposition == 80) { values.Box6 = "J"; }; / k = if (text.K.hposition == 25 && text.K.vposition == 80) { values.Box1 = "K"; } else if (text.K.hposition == 35 && text.K.vposition == 80) { values.Box2 = "K"; } else if (text.K.hposition == 45 && text.K.vposition == 80) { values.Box3 = "K"; } else if (text.K.hposition == 55 && text.K.vposition == 80) { values.Box4 = "K"; } else if (text.K.hposition == 65 && text.K.vposition == 80) { values.Box5 = "K"; } else if (text.K.hposition == 75 && text.K.vposition == 80) { values.Box6 = "K"; }; / l = if (text.L.hposition == 25 && text.L.vposition == 80) { values.Box1 = "L"; } else if (text.L.hposition == 35 && text.L.vposition == 80) { values.Box2 = "L"; } else if (text.L.hposition == 45 && text.L.vposition == 80) { values.Box3 = "L"; } else if (text.L.hposition == 55 && text.L.vposition == 80) { values.Box4 = "L"; } else if (text.L.hposition == 65 && text.L.vposition == 80) { values.Box5 = "L"; } else if (text.L.hposition == 75 && text.L.vposition == 80) { values.Box6 = "L"; }; / check_all = { expressions.a; expressions.b; expressions.c; expressions.d; expressions.e; expressions.f; expressions.g; expressions.h; expressions.i; expressions.j; expressions.k; expressions.l; } </expressions> <values> / p1_count = 0 / p2_count = 0 / p3_count = 0 / p4_count = 0 / p5_count = 0 / p6_count = 0 </values> <trial start> / ontrialbegin = [ values.p1_count=0; values.p2_count=0; values.p3_count=0; values.p4_count=0; values.p5_count=0; values.p6_count=0; text.A.hposition = 25%; text.A.vposition = 40%; text.B.hposition = 35%; text.B.vposition = 40%; text.C.hposition = 45%; text.C.vposition = 40%; text.D.hposition = 55%; text.D.vposition = 40%; text.E.hposition = 65%; text.E.vposition = 40%; text.F.hposition = 75%; text.F.vposition = 40%; text.G.hposition = 25%; text.G.vposition = 60%; text.H.hposition = 35%; text.H.vposition = 60%; text.I.hposition = 45%; text.I.vposition = 60%; text.J.hposition = 55%; text.J.vposition = 60%; text.K.hposition = 65%; text.K.vposition = 60%; text.L.hposition = 75%; text.L.vposition = 60%; ] / branch = [ trial.mytrial ] / trialduration = 0 </trial> <trial yousure> / stimulusframes = [1=pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL,endtext] / validresponse = (30,38) ] / branch = [ if (trial.yousure.response == 30) trial.start else trial.end ] </trial> <trial end> / ontrialbegin = [ expressions.check_all; ] / stimulusframes = [1=pos1,pos2,pos3,pos4,pos5,pos6,A,B,C,D,E,F,G,H,I,J,K,L,posrep1,posrep2,posrep3,posrep4,posrep5,posrep6,posrep2_1,posrep2_2,posrep2_3,posrep2_4,posrep2_5,posrep2_6, RVSL,endtext2] / validresponse = (28) </trial> <text endtext> / items = ("Press A if you are NOT happy with the order of the shapes above, otherwise press L.") / position = (50,92) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) </text> <text endtext2> / items = ("Press ENTER to continue.") / position = (50,92) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) </text> <text RVSL> / items = RVSL / position = (50,32) /fontstyle = ("Arial", 3%, false, false, false, false, 5, 0) /txcolor = black /txbgcolor = (transparent) /resetinterval = 3 /size = (80%,50%) / txbgcolor = transparent </text> <item RVSL> /1 = "Please rank the shapes you saw by the order that you think they appeared. For example, put the shape that you think was shown LEAST often in the first box and the shape you think was presented second LEAST often in the second box and so on, until the last box where you will put the shape you think you saw the MOST often. If you don’t think a shape was presented to you at all, please do not click on that shape." </item> <text A> / items = ("A.jpg") / position = (25,40) / dropsource = true </text> <text B> / items = ("B.jpg") / position = (35,40) / dropsource = true </text> <text C> / items = ("C.jpg") / position = (45,40) / dropsource = true </text> <text D> / items = ("D.jpg") / position = (55,40) / dropsource = true </text> <text E> / items = ("E.jpg") / position = (65,40) / dropsource = true </text> <text F> / items = ("F.jpg") / position = (75,40) / dropsource = true </text> <text G> / items = ("G.jpg") / position = (25,60) / dropsource = true </text> <text H> / items = ("H.jpg") / position = (35,60) / dropsource = true </text> <text I> / items = ("I.jpg") / position = (45,60) / dropsource = true </text> <text J> / items = ("J.jpg") / position = (55,60) / dropsource = true </text> <text K> / items = ("K.jpg") / position = (65,60) / dropsource = true </text> <text L> / items = ("L.jpg") / position = (75,60) / dropsource = true </text> <shape pos1> / hposition = 25 / vposition = 80 / dropposition = (25,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos2> / hposition = 35 / vposition = 80 / dropposition = (35,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos3> / hposition = 45 / vposition = 80 / dropposition = (45,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos4> / hposition = 55 / vposition = 80 / dropposition = (55,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos5> / hposition = 65 / vposition = 80 / dropposition = (65,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape pos6> / hposition = 75 / vposition = 80 / dropposition = (75,80) / shape = rectangle / droptarget = true / size = (170,170) / color = grey </shape> <shape posrep1> / hposition = 25 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2> / hposition = 35 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep3> / hposition = 45 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep4> / hposition = 55 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep5> / hposition = 65 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep6> / hposition = 75 / vposition = 40 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_1> / hposition = 25 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_2> / hposition = 35 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_3> / hposition = 45 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_4> / hposition = 55 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_5> / hposition = 65 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape> <shape posrep2_6> / hposition = 75 / vposition = 60 / shape = rectangle / droptarget = true / size = (170,170) / color = lightgrey </shape>
|
|
|
mongrel
|
|
Group: Forum Members
Posts: 53,
Visits: 147
|
+x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thank you, Dave! +x+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File. Thanks a lot, Dave!
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+xHi Dave, I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS <item energy> /1 = "Energie.png" </item> <item health> /1 = "Gesundheit.png" </item> <item weight> /1 = "Gewicht.png" </item> <item bodystrength> /1 = "Körperkraft.png" </item> <item bodyattr> /1 = "Körperliche Attraktivität.png" </item> <item bodyfit> /1= "Körperliche Fitness.png" </item> <item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item> <item coordination> /1 = "Physische Koordination.png" </item> <item sexappeal> /1 = "Sex-Appeal.png" </item> <item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item> PICTURES <picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture> <picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture> <picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture> <picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture> <picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture> <picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture> <picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture> <picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture> <picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture> <picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture> SHAPES <shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape> <shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape> <shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape> <shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape> <shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape> <shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape> <shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape> <shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape> <shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape> <trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial> <block SOQ> / trials = [1=SOQ] </block> <expt SOQ> / blocks = [1=SOQ] </expt> My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong? I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here... Thank you in advance! M. Happy to take a look, but please provide the actual script and include all the files it requires to run (i.e. the images, etc.). You can ZIP everything up and then attach it to a post by clicking +Insert -> Add File.
|
|
|
mongrel
|
|
Group: Forum Members
Posts: 53,
Visits: 147
|
Hi Dave,
I tried to fix my problem by reading this thread, but I wasn't successful so far. I want participants to rank certain words (presented as pictures) by dragging and dropping them into rectangular shapes. Here is my (quick n dirty) script so far: ITEMS
<item energy> /1 = "Energie.png" </item>
<item health> /1 = "Gesundheit.png" </item>
<item weight> /1 = "Gewicht.png" </item>
<item bodystrength> /1 = "Körperkraft.png" </item>
<item bodyattr> /1 = "Körperliche Attraktivität.png" </item>
<item bodyfit> /1= "Körperliche Fitness.png" </item>
<item bodymeas> /1 = "Körpermaße z.B. Brust Taille Hüfte.png" </item>
<item coordination> /1 = "Physische Koordination.png" </item>
<item sexappeal> /1 = "Sex-Appeal.png" </item>
<item vismusbody> /1 = "Sichtbar muskulöser Körper.png" </item>
PICTURES
<picture energy> /items = energy /size = (7%, 7%) /position = (5%,5%) / dropsource = true </picture>
<picture health> /items = health /size = (6%, 6%) / position = (5%,10%) / dropsource = true </picture>
<picture weight> /items = weight /size = (6%, 6%) / position = (5%,15%) / dropsource = true </picture>
<picture bodystrength> /items = bodystrength /size = (6%, 6%) / position = (5%,20%) / dropsource = true </picture>
<picture bodyattr> /items = bodyattr /size = (6%, 6%) / position = (5%,25%) / dropsource = true </picture>
<picture bodyfit> /items= bodyfit /size = (6%, 6%) / position = (5%,30%) / dropsource = true </picture>
<picture bodymeas> /items = bodymeas /size = (6%, 6%) / position = (5%,35%) / dropsource = true </picture>
<picture coordination> /items = coordination /size = (6%, 6%) /position = (5%,40%) / dropsource = true </picture>
<picture sexappeal> /items = sexappeal /size = (6%, 6%) /position = (5%,45%) / dropsource = true </picture>
<picture vismusbody> /items = vismusbody /size = (6%, 6%) /position = (5%,50%) / dropsource = true </picture>
SHAPES
<shape drop1> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 5%) </shape>
<shape drop2> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 15%) </shape>
<shape drop3> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 25%) </shape>
<shape drop4> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape>
<shape drop5> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 35%) </shape>
<shape drop6> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 45%) </shape>
<shape drop7> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 55%) </shape>
<shape drop8> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 65%) </shape>
<shape drop9> / shape = rectangle / size = (10%, 15%) /color = white / droptarget = true / position = (80%, 75%) </shape>
<shape drop10> / shape = rectangle / size = (10%, 15%) / droptarget = true / position = (80%, 85%) </shape>
<trial SOQ> / stimulusframes = [1 = drop1, drop2, drop3, drop4, drop5, drop6, drop7, drop8, drop9, drop10, energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight,health ] / inputdevice = dragdrop / showmousecursor = true / validresponse = (energy, vismusbody, sexappeal, coordination, bodymeas, bodyfit, bodyattr, bodystrength, weight, health) </trial>
<block SOQ> / trials = [1=SOQ] </block>
<expt SOQ> / blocks = [1=SOQ] </expt>
My questions are: 1. I cannot seem to manage that the rectangle has a frame to make it visible. How can I do that? 2. The Dragndrop does not work, what am I doing wrong?
I know, I could probably find the answers in the ToL script or the other one that you posted, but for some reason I cannot apply those scripts to my needs. Sorry, if I miss the obvious here...
Thank you in advance! M.
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+x+x+x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> +x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> I'm not sure how I'm supposed to answer that without the actual code. Sorry about that, Here it is. Basically I just want to couterbalance the positions of droptarget and dropsouce between subjects <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / position = (30%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (30%, 30%) </text> <text smoking> / items = smoking / position = (70%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (70%, 30%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (50%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 80%; text.negative.hposition = 70%; text.negative.vposition = 80%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 80%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 80%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <block myblock2> /trials = [1-10 = third] </block> <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> <trial third> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive2.hposition = 30%; text.positive2.vposition = 80%; text.negative2.hposition = 70%; text.negative2.vposition = 80%; text.positive2.dropsource = true; text.negative2.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.third.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.third.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.fourth ] / recorddata = false </trial> <trial fourth> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive2.vposition != 80%) text.positive2.dropsource = false; ] / ontrialbegin = [ if (text.negative2.vposition != 80%) text.negative2.dropsource = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.fourth.response == "reset"){ values.reset = true; trial.third; }; ] / branch = [ if (trial.fourth.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <item negative2> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive2> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <text positive2> / items = positive2 / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative2> / items = negative2 / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> If you wish to counterbalance *between* subjects, then this <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> is wrong. The above administers 10 instances of "myblock" (running trial.first and trial.second) and 10 instances of "myblock2" (running trial.third and trial.fourth) to each participant, i.e. this would be *within* subjects. For a between-manipulation, you would specify <expt> / subjects = (1 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock] </expt> <expt> / subjects = (2 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock2] </expt> where participants assigned an odd group ID (1,3,5, ...) would get 20 instances of "myblock" and participants assigned an even group ID (2,4,6, ...) would get 20 instances of "myblock2". Thanks for this Dave. Working superb. I noticed that at the time of launch there is an option to show participants a random confirmation code by millisecond. How to capture that code in the data element. Is there a documentation about confirmation code in the Help section. Thanks The confirmation code is just the subject ID, it's logged in the data file already in the subject column. Hi, Just noticed that even if someone aborts the expt, still he/she gets the confirmation code. Anyway to stop that. Thanks. No, not really.
|
|
|
abhi
|
|
Group: Forum Members
Posts: 114,
Visits: 558
|
+x+x+x+x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> +x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> I'm not sure how I'm supposed to answer that without the actual code. Sorry about that, Here it is. Basically I just want to couterbalance the positions of droptarget and dropsouce between subjects <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / position = (30%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (30%, 30%) </text> <text smoking> / items = smoking / position = (70%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (70%, 30%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (50%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 80%; text.negative.hposition = 70%; text.negative.vposition = 80%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 80%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 80%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <block myblock2> /trials = [1-10 = third] </block> <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> <trial third> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive2.hposition = 30%; text.positive2.vposition = 80%; text.negative2.hposition = 70%; text.negative2.vposition = 80%; text.positive2.dropsource = true; text.negative2.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.third.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.third.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.fourth ] / recorddata = false </trial> <trial fourth> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive2.vposition != 80%) text.positive2.dropsource = false; ] / ontrialbegin = [ if (text.negative2.vposition != 80%) text.negative2.dropsource = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.fourth.response == "reset"){ values.reset = true; trial.third; }; ] / branch = [ if (trial.fourth.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <item negative2> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive2> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <text positive2> / items = positive2 / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative2> / items = negative2 / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> If you wish to counterbalance *between* subjects, then this <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> is wrong. The above administers 10 instances of "myblock" (running trial.first and trial.second) and 10 instances of "myblock2" (running trial.third and trial.fourth) to each participant, i.e. this would be *within* subjects. For a between-manipulation, you would specify <expt> / subjects = (1 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock] </expt> <expt> / subjects = (2 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock2] </expt> where participants assigned an odd group ID (1,3,5, ...) would get 20 instances of "myblock" and participants assigned an even group ID (2,4,6, ...) would get 20 instances of "myblock2". Thanks for this Dave. Working superb. I noticed that at the time of launch there is an option to show participants a random confirmation code by millisecond. How to capture that code in the data element. Is there a documentation about confirmation code in the Help section. Thanks The confirmation code is just the subject ID, it's logged in the data file already in the subject column. Hi, Just noticed that even if someone aborts the expt, still he/she gets the confirmation code. Anyway to stop that. Thanks.
|
|
|
Dave
|
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
+x+x+x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> +x+x+x+xHi Dave, This is working fine. But I noticed that the data is messy (I tried only test monkey). Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? Thanks Abhi > Firstly, ‘Reset’ is also recorded. It will pile up to big chunk in case there are 100 respondents. Is there a way not to record the ‘reset’ data in case someone resets the trials? You can set the trials to /recorddata=false and only /branch to a separate <trial> that records the data of interest when the participant responds "done". > Secondly, although, when I try the expt. manually, I can’t drop the same target onto the same source (seems impossible). But data from test monkey shows many responses as same for the first and second trials (i.e. ‘me’and ‘me’ as responses in data for both first and second trials). This is normal; It's an artifact of how the monkey works and doesn't indicate anything wrong with the code. In essence, all the monkey does is select one of the options listed in /validresponse at random. > Thirdly, data doesn’t show which item/text/word was drooped over droptargets (e.g., ‘refreshed’,‘clogged arteries’ etc.). I tried ‘Stimulusitem’ in column, but it shows only the stimulus items shown on the screen but not specifically which ‘text/item/word’was dragged over which target. Is there a way to find that? You can build some /ontrialend logic that reads the dragged elements' position. That would tell you which stimulus / item was dragged where. <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / valign = center / halign = center / position = (50%, 50%) / txcolor = green / fontstyle = ("Arial", 15%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / valign = bottom / halign = center / position = (50%, 95%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 95%) </text> <text smoking> / items = smoking / valign = top / halign = center / position = (50%, 5%) / txcolor = black / fontstyle = ("Arial", 15%) / erase = false / droptarget = true / dropposition = (50%, 5%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (90%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 50%; text.negative.hposition = 70%; text.negative.vposition = 50%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 50%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 50%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <expt> / blocks = [1=myblock] </expt> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency text.negative.currentitem text.negative.vposition text.positive.currentitem text.positive.vposition) / separatefiles = true </data> Hi, In this I want to counterbalance the positon of 'source and target' and so created two additional trials - 'third and fourth' with 'me2 & smoking2' and 'positive2& negative2' (at different positions). For data I used the following. But does'nt work. Data shows responses in all colummns. For e.g., in first and second trials, it shows entry for third and fourth trials also (when only first and second trials were played). Is something wrong here? Thanks <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> I'm not sure how I'm supposed to answer that without the actual code. Sorry about that, Here it is. Basically I just want to couterbalance the positions of droptarget and dropsouce between subjects <item negative> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <item smoking> /1 = "smoking" </item> <item me> /1 = "me" </item> <text positive> / items = positive / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative> / items = negative / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <list negitemnumbers> / poolsize = 10 </list> <list positemnumbers> / poolsize = 10 </list> <values> / negitem = 1 / positem = 1 / reset = false </values> <text me> / items = me / position = (30%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (30%, 30%) </text> <text smoking> / items = smoking / position = (70%, 30%) / txcolor = black / fontstyle = ("Arial", 5%) / erase = false / droptarget = true / dropposition = (70%, 30%) </text> <text reset> / items = ("RESET") / size = (5%, 3%) / vjustify = center / txbgcolor = grey / position = (50%, 90%) </text> <trial first> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive.hposition = 30%; text.positive.vposition = 80%; text.negative.hposition = 70%; text.negative.vposition = 80%; text.positive.dropsource = true; text.negative.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.first.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.first.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive, negative, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.second ] / recorddata = false </trial> <trial second> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive.vposition != 80%) text.positive.dropsource = false; ] / ontrialbegin = [ if (text.negative.vposition != 80%) text.negative.dropsource = false; ] / stimulusframes = [1 = positive, negative, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.second.response == "reset"){ values.reset = true; trial.first; }; ] / branch = [ if (trial.second.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <trial record_round> / trialduration = 0 / validresponse = (0) / recorddata = true </trial> <block myblock> /trials = [1-10 = first] </block> <block myblock2> /trials = [1-10 = third] </block> <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> <trial third> / ontrialbegin = [ if (!values.reset) { values.positem = list.positemnumbers.nextindex; values.negitem = list.negitemnumbers.nextindex; }; ] / ontrialbegin = [ text.positive2.hposition = 30%; text.positive2.vposition = 80%; text.negative2.hposition = 70%; text.negative2.vposition = 80%; text.positive2.dropsource = true; text.negative2.dropsource = true; text.me.droptarget = true; text.smoking.droptarget = true; ] / ontrialend = [ if (trial.third.response == "me") text.me.droptarget = false; ] / ontrialend = [ if (trial.third.response == "smoking") text.smoking.droptarget = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking) / branch = [ trial.fourth ] / recorddata = false </trial> <trial fourth> / ontrialbegin = [ values.reset = false; ] / ontrialbegin = [ if (text.positive2.vposition != 80%) text.positive2.dropsource = false; ] / ontrialbegin = [ if (text.negative2.vposition != 80%) text.negative2.dropsource = false; ] / stimulusframes = [1 = positive2, negative2, me, smoking, reset] / inputdevice = dragdrop / showmousecursor = true / validresponse = (me, smoking, reset) / branch = [ if (trial.fourth.response == "reset"){ values.reset = true; trial.third; }; ] / branch = [ if (trial.fourth.response != "reset"){ trial.record_round; } ] / recorddata = false </trial> <item negative2> /1 = "lung cancer" /2 = "addiction" /3 = "heart disease" /4 = "clogged arteries" /5 = "blindness" /6 = "amputation" /7 = "death" /8 = "tongue cancer" /9 = "throat cancer" /10 = "gangrene" </item> <item positive2> /1 = "healthy" /2 = "vibrant" /3 = "free" /4 = "happy" /5 = "in control" /6 = "long life" /7 = "energetic" /8 = "refreshed" /9 = "good" /10 = "rewarding" </item> <text positive2> / items = positive2 / position = (70%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.positem </text> <text negative2> / items = negative2 / position = (30%, 80%) / txcolor = green / fontstyle = ("Arial", 5%) / dropsource = true / select = values.negitem </text> <data> / columns = (date time subject group blocknum blockcode trialnum trialcode trial.first.response trial.first.latency trial.second.response trial.second.latency trial.third.response trial.third.latency trial.fourth.response trial.fourth.latency text.negative.currentitem text.negative.hposition text.negative.vposition text.positive.currentitem text.positive.hposition text.positive.vposition text.negative2.currentitem text.negative2.hposition text.negative2.vposition text.positive2.currentitem text.positive2.hposition text.positive2.vposition ) / separatefiles = true </data> If you wish to counterbalance *between* subjects, then this <expt> / blocks = [1-20 = random (myblock,myblock2)] </expt> is wrong. The above administers 10 instances of "myblock" (running trial.first and trial.second) and 10 instances of "myblock2" (running trial.third and trial.fourth) to each participant, i.e. this would be *within* subjects. For a between-manipulation, you would specify <expt> / subjects = (1 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock] </expt> <expt> / subjects = (2 of 2) / groupassignment = groupnumber / blocks = [1-20 = myblock2] </expt> where participants assigned an odd group ID (1,3,5, ...) would get 20 instances of "myblock" and participants assigned an even group ID (2,4,6, ...) would get 20 instances of "myblock2". Thanks for this Dave. Working superb. I noticed that at the time of launch there is an option to show participants a random confirmation code by millisecond. How to capture that code in the data element. Is there a documentation about confirmation code in the Help section. Thanks The confirmation code is just the subject ID, it's logged in the data file already in the subject column.
|
|
|