HTML and CSS Reference
In-Depth Information
// Find a supported type
extension =
_(Q.options.audioSupported)
.detect(function(extension) {
return snd.canPlayType(Q.audioMimeTypes[extension]) ?
extension : null;
});
// No supported audio = trigger ok callback anyway
if(!extension) {
callback(key,null);
return;
}
// If sound is turned off,
// call the callback immediately
$(snd).on('error',errorCallback);
$(snd).on('canplaythrough',function() {
callback(key,snd);
});
snd.src = Q.options.audioPath + baseName + "." + extension;
snd.load();
return snd;
};
// Loader for other file types, just store the data
// returned from an ajax call
Q.loadAssetOther = function(key,src,callback,errorCallback) {
$.get(Q.options.dataPath + src,function(data) {
callback(key,data);
}).fail(errorCallback);
};
Each of the three loader methods performs the same task with a different asset type, which amounts to provid-
ing a consistent call to a callback containing the passed in key and the loaded object in question. A helper meth-
od to remove the extension from a filename is also defined.
Q.loadAssetImage creates an Image object and links the callback to the load event method.
Q.loadAssetOther just uses the jQuery get method to load data into a buffer and trigger the callback
when it's loaded.
Finally, the Q.loadAssetAudio creates an Audio element and then determines if the Audio tag is
available or whether sound is turned on normally. In cases in which the sound tag isn't supported, or the sound
is turned off, the method calls the callback immediately and returns.
The Audio loader also needs to do some extra work to ensure the audio file loaded is supported by the
browser. To do this it keeps a hash called Q.audioMimeTypes that maps file extensions to audio mime types.
Search WWH ::




Custom Search