Files
febbweiss.github.io/demo/pacman/lib/gamequery-soundwrapper-soundmanager.js
ECAILLE Fabrice (externe) 2e64cb961e Initial commit
2017-05-03 16:46:01 +02:00

80 lines
2.5 KiB
JavaScript

/**
* gameQuery rev. $Revision$
*
* Copyright (c) 2008 Selim Arsever (gamequery.onaluf.org)
* licensed under the MIT (MIT-LICENSE.txt)
*/
/**
* To use this wrapper you will need:
* 1) Include SoundManager2.js before this script
* 2) Give SoundManager2 the position of the swf ie. : soundManager.url = './path/to/swf'
* 3) Optionally deactivate the debug mode from SoundManager2
*/
// this allows use of the convenient $ notation in a plugin
(function($) {
soundManager.url = './'
// Here is a bogus soundWrapper written as an example
$.extend($.gameQuery, {
SoundWrapper: function(url, loop) {
// start loading the sound. Should turn this.ready to true once done.
this.load = function(){
try{
this.sound = soundManager.createSound({
id: this.id,
url: url,
autoplay: false,
autoLoad: true
});
} catch (err) {
// if something failed we generate a fake sound object
this.sound = {readyState: 3, play: function(){}};
}
};
// plays the sound if this.ready == true
this.play = function(){
if(loop){
this.sound.play({
onfinish: function() {
this.play();
}
});
} else {
this.sound.play();
}
};
// pauses the sound if it is playing
this.pause = function(){
this.sound.pause();
};
// stops the sound if it is playing, rewind (even if paused)
this.stop = function(){
this.sound.stop();
};
// mutes the sound without stopping it
this.muted = function(mute){
if(mute){
this.sound.mute()
} else {
this.sound.unmute();
}
}
// returns true if the sound is ready to be played
this.ready = function(){
return this.sound.readyState==3
};
// add the sound to the manager
this.id = 'sound_'+$.gameQuery.resourceManager.sounds.length;
$.gameQuery.resourceManager.addSound(this);
return true;
}});
})(jQuery);