1) Requesting fullscreen via calling a function ( goFullscreen() ) only appears to work when there are no intervals running. When running an interval (i.e. moving an object onscreen every 10 milliseconds), the browser refuses to go fullscreen. However, as soon as this interval is cleared, the fullscreen function works perfectly. Is this a known issue, or am I doing something wrong (tried on Chrome, Firefox, & Safari)?
2) I have an object on the screen that moves 10 pixels every 10 milliseconds (using setInterval). This seems terribly inefficient, is this the proper method for animating objects using JS (without having to use jQuery)?
... and jQuery is NOT going to help you on that because ... well, guess what? It uses setInterval and setTimeout just like you are.
That said, those USED to be the only way to animate elements, but now we have CSS3 "transitions" to handle moving things around. If it's a non-stop animation, you wouldn't even need scripting -- if it's script controlled, just set top and left, and let a CSS3 transition handle animating the movement over a fixed period of time.
transition: left 0.5s, top 0.5s;
Will use the "ease" animation (starts slow, speeds up at middle, slows down) to move the element over half a second instead of instantly popping into the new location. If you want it to move predictably at a 'linear' speed:
transition: left 0.5s linear, top 0.5s linear;
3) The keystroke sounds are invoked using "new Audio()". However, when playing the sounds for the first time there is a slight delay. Once they are cached they play just fine. How do I preload these audio clips using the "new Audio()" method (and not HTML <audio preload="auto"> tags)?
The latency of HTML 5 Audio relegates it pretty much useless for anything event driven; the only way around it I've found is to create the element during document parsing (right before </body>), have a small blank space at the beginning of it, fast-forward past that blank spot in play, pause it, then when you want it to play un-pause, and when the sound reaches the end BEFORE it stops, loop back to that blank spot and pause again.
Which sucks -- but that's HTML 5 Audio for you -- universally the implementation is rubbish thanks to the ridiculous latency -- FILE LOADED OR NOT -- between telling it to play and it actually playing. In some browsers the delay can be as much as half a second even when the file is cached.
... which is why I don't consider HTML 5 audio to be 'ready for primetime' on projects, but again there's a reason HTML 5 isn't a recommendation yet either.
NOT that there's a legitimate reason for AUDIO or VIDEO to even have their own blasted tags.