Feedback summary (e.g., average response time, percent correct)

34 views
Skip to first unread message

NobleBeast

unread,
Feb 7, 2013, 9:45:08 PM2/7/13
to scrip...@googlegroups.com
Does anyone have an idea as to how a feedback summary page could be implemented -- I've been poking through the source, but I'm not sure how to go about adding functionality onto the Feedback module?

Thomas Schubert

unread,
Feb 8, 2013, 6:38:31 AM2/8/13
to scrip...@googlegroups.com
Hi,

the items object already has some functionality in this direction

In an old test, we used this branching function:


public function branch1(items:Object) : Boolean{
return items.miss > 1; // avg, sum, incorrect, correct, miss
}


that was meant to repeat a training part until no item was missed.

you see in the comment that items has avg., sum, incorrect, correct, and
miss as attributes

you should be able to use those to present final feedback - you will
need actionscript to generate that after all items have been presented

hope that helps, let us know whether it worked

thomas




On 08/02/2013 03:45, NobleBeast wrote:
> Does anyone have an idea as to how a feedback summary page could be
> implemented -- I've been poking through the source, but I'm not sure
> how to go about adding functionality onto the Feedback module? --
> You received this message because you are subscribed to the Google
> Groups "scriptingrt" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to scriptingrt...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

--
thomas schubert
department of psychology, university of oslo
schu...@igroup.org
http://www.igroup.org/schubert/

NobleBeast

unread,
Feb 8, 2013, 2:12:41 PM2/8/13
to scrip...@googlegroups.com
Thanks for the pointer. I spent some time tracing and found where to add the code.

Below this line in TestPart.as:

this.avg = this.sum / this.count;

I added this:

if (this.chainedChilds.length == count) {
Alert.show("Avg. time: " + String(uint(this.avg)) + "ms" + "\n% correct: " + String(uint(this.goals/(this.goals+this.failures)*100)));
}

I forked the source on GitHub with this addition (and a toggle switch) as well as another feature I added to suit my needs. This is the first time I've coded in AS3/Flex, and the first time I've contributed to an opensource project, so go easy on me. ;-)

Cheers,
Tyler

Thomas Schubert

unread,
Feb 11, 2013, 8:14:32 AM2/11/13
to scrip...@googlegroups.com
very nice!

and great that you fixed the bug in feedback. I'll test it later this week and update the git repository. thanks a lot.

re the alert: when I tested it, it happened that the study proceeded behind the alert, and then my mouse pointer disappeared outside of the alert window. Instead of creating an alert, you could also change the content of a text object, and display it as a normal item?


On 08/02/2013 20:12, NobleBeast wrote:
Thanks for the pointer. I spent some time tracing and found where to add the code.

Below this line in TestPart.as:

this.avg = this.sum / this.count;

I added this:

if (this.chainedChilds.length == count) {
Alert.show("Avg. time: " + String(uint(this.avg)) + "ms" + "\n% correct: " + String(uint(this.goals/(this.goals+this.failures)*100)));
}

I forked the source on GitHub with this addition (and a toggle switch) as well as another feature I added to suit my needs. This is the first time I've coded in AS3/Flex, and the first time I've contributed to an opensource project, so go easy on me. ;-)

Cheers,
Tyler

oh, this is also my first open source project, we are all learners here...

cheers
thomas

tylerburleigh

unread,
Feb 11, 2013, 9:11:42 AM2/11/13
to scrip...@googlegroups.com
re the alert: when I tested it, it happened that the study proceeded behind the alert, and then my mouse pointer disappeared outside of the alert window. Instead of creating an alert, you could also change the content of a text object, and display it as a normal item?

I found a work-around. It works so long as you like the Alert style of feedback. 
 
1) Add call to Mouse.show(); when the alert appears in TestPart.as. 
2) Create a blank Part container in the MXML document with no response defined (important).

<Part backgroundColor="0xFFFFFF" color="0xFFFFFF">
<Instruction instruction=""/>
</Part>

3) Create an alertClickHandler and add it to the Alert.show() in TestPart.as. In this click handler we hide mouse (again) and we hide the Part container.

private function alertClickHandler(evt:CloseEvent):void {
if (evt.detail == Alert.YES) {
Mouse.hide();
this.hide(); // hides the Part container
}
}

I've got a demo with this running here if you're curious: 

I think you could also use the Part container to present the feedback instead of the Alert. I haven't tried it yet (I like the Alert, personally). If you follow the TestPart with a Part container, then I think you could just call this.getChildAt(0).instruction = "Performance feedback" [....] (if it's an instruction container in the Part) or this.getChildAt(0).text = "Performance feedback" [....] (if it's a text container in the Part). Then of course you would skip the Mouse and hide commands altogether, and add a response to the Part. I am not sure, but it might also need a timer delay defined before the call to this.child -- otherwise it might call a child of TestPart instead.

I'm working on building a dotprobe paradigm using the codebase, you might be interested in it: http://www.tylerjohnburleigh.com/git/dotprobe/ -- this is eventually what I intend to be using scriptingrt for, and I'm hoping to make a template that others can use to build their own.

Thanks for all your hard work on scriptingrt! It's a great tool that nobody else (commercial or especially otherwise) seems to be providing.

Cheers,
Tyler
Reply all
Reply to author
Forward
0 new messages