Hi Andrew,
> My questions about databases related as to whether it was possible to use the AAT to produce SCOs that could be made to communicate with databases e.g. to record whether a certain button had been clicked (I know xAPI will enable that but it requires an entire LRS to be effective). So... is there a way that my SCO could use, say, some javascript to talk to a MyQSL database? Alternatively, can I use JS or a built-in function to set a variable inside the SCO?
Yes, you can, as long as you are able to program / have a programmer to hand / can pay someone to do the work. Building a system like that is complicated, especially give that such a system would typically be hosted on a network, possibly on the public internet, you'll probably want user-management and you'd need good security practises in place to prevent database pollution / data leaks. All of the source code for the AAT and the SCO contents (Adapt Framework) is freely available online and to modify as you see fit.
> As a follow-up to that is there some way that I can use the AAT to produce an SCO where a button-click would execute a piece of javascript?
Yes you can. This isn't the aim of the Framework as it currently stands. The majority of the Framework's behaviour is very specifically related to behaviour of each plugin and we do not as standard practise have a place for custom JavaScript execution on user events. That being said, if you are able to program / have a programmer to hand / can pay someone to do the work, all of the source code for the AAT and the SCO contents (Adapt Framework) is freely available online and to modify as you see fit.
> Also, is there some way that I can set the value of cmi.score.raw programmatically and NOT through an AAT-created quiz?
Without trying to sound repetitive [see above] and yes, `Adapt.offlineStorage.set('score', current, min, max);`
https://github.com/adaptlearning/adapt_framework/blob/master/src/core/js/offlineStorage.js#L70
https://github.com/adaptlearning/adapt-contrib-spoor/blob/master/js/adapt-offlineStorage-scorm.js#L136
https://github.com/adaptlearning/adapt-contrib-spoor/blob/master/js/scorm/wrapper.js#L217-L232
> As for repeatedly playing an audio file etc., there are specific pedagogic uses where it may not be possible to place the control entirely in student hands. I hope all of this makes sense.
Yes, that makes perfect sense. As yet, no-one I know of has used the Framework for teaching languages. It would be some custom behaviour, probably a custom commissioned component or extension to make your requirements easy to replicate. You would need a good idea of your design requirements before asking someone to construct said plugins.
As a wider point, Adapt Framework and AAT are really the foundations of a product or service if you have the means and intent to produce something more custom or for a specific use-case. For a large cohort of corporate / public service / private education e-learning needs, it is used extensively as is.
I hope that helps some,
Warm Regards,
Ollie.