mirror of
https://github.com/photonstorm/phaser
synced 2025-03-01 05:47:28 +00:00
Added AudioSprite loader.
This commit is contained in:
parent
db515d8724
commit
8983c93fc6
2 changed files with 75 additions and 28 deletions
|
@ -59,6 +59,36 @@ var AudioFile = new Class({
|
|||
|
||||
});
|
||||
|
||||
AudioFile.create = function (loader, key, urls, config, xhrSettings)
|
||||
{
|
||||
var game = loader.systems.game;
|
||||
var audioConfig = game.config.audio;
|
||||
var deviceAudio = game.device.Audio;
|
||||
|
||||
if ((audioConfig && audioConfig.noAudio) || (!deviceAudio.webAudio && !deviceAudio.audioData))
|
||||
{
|
||||
console.info('Skipping loading audio \'' + key + '\' since sounds are disabled.');
|
||||
return null;
|
||||
}
|
||||
|
||||
var url = AudioFile.findAudioURL(game, urls);
|
||||
|
||||
if (!url)
|
||||
{
|
||||
console.warn('No supported url provided for audio \'' + key + '\'!');
|
||||
return null;
|
||||
}
|
||||
|
||||
if (deviceAudio.webAudio && !(audioConfig && audioConfig.disableWebAudio))
|
||||
{
|
||||
return new AudioFile(key, url, this.path, xhrSettings, game.sound.context);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HTML5AudioFile(key, url, this.path, config);
|
||||
}
|
||||
};
|
||||
|
||||
// When registering a factory function 'this' refers to the Loader context.
|
||||
//
|
||||
// There are several properties available to use:
|
||||
|
@ -67,34 +97,7 @@ var AudioFile = new Class({
|
|||
|
||||
FileTypesManager.register('audio', function (key, urls, config, xhrSettings)
|
||||
{
|
||||
var game = this.systems.game;
|
||||
var audioConfig = game.config.audio;
|
||||
var deviceAudio = game.device.Audio;
|
||||
|
||||
if ((audioConfig && audioConfig.noAudio) || (!deviceAudio.webAudio && !deviceAudio.audioData))
|
||||
{
|
||||
console.info('Skipping loading audio \'' + key + '\' since sounds are disabled.');
|
||||
return this;
|
||||
}
|
||||
|
||||
var url = AudioFile.findAudioURL(game, urls);
|
||||
|
||||
if (!url)
|
||||
{
|
||||
console.warn('No supported url provided for audio \'' + key + '\'!');
|
||||
return this;
|
||||
}
|
||||
|
||||
var audioFile;
|
||||
|
||||
if (deviceAudio.webAudio && !(audioConfig && audioConfig.disableWebAudio))
|
||||
{
|
||||
audioFile = new AudioFile(key, url, this.path, xhrSettings, game.sound.context);
|
||||
}
|
||||
else
|
||||
{
|
||||
audioFile = new HTML5AudioFile(key, url, this.path, config);
|
||||
}
|
||||
var audioFile = AudioFile.create(this, key, urls, config, xhrSettings);
|
||||
|
||||
if (audioFile)
|
||||
{
|
||||
|
|
44
src/loader/filetypes/AudioSprite.js
Normal file
44
src/loader/filetypes/AudioSprite.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
var AudioFile = require('./AudioFile.js');
|
||||
var CONST = require('../const');
|
||||
var FileTypesManager = require('../FileTypesManager');
|
||||
var JSONFile = require('./JSONFile.js');
|
||||
|
||||
// Phaser.Loader.FileTypes.AudioSprite
|
||||
|
||||
FileTypesManager.register('audioSprite', function (key, urls, json, config, audioXhrSettings, jsonXhrSettings)
|
||||
{
|
||||
var audioFile = AudioFile.create(this, key, urls, config, audioXhrSettings);
|
||||
|
||||
if (audioFile)
|
||||
{
|
||||
var jsonFile;
|
||||
|
||||
if (typeof json === 'string')
|
||||
{
|
||||
jsonFile = new JSONFile(key, json, this.path, jsonXhrSettings);
|
||||
|
||||
this.addFile(jsonFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
jsonFile = {
|
||||
type: 'json',
|
||||
key: key,
|
||||
data: json,
|
||||
state: CONST.FILE_WAITING_LINKFILE
|
||||
};
|
||||
}
|
||||
|
||||
// Link them together
|
||||
audioFile.linkFile = jsonFile;
|
||||
jsonFile.linkFile = audioFile;
|
||||
|
||||
// Set the type
|
||||
audioFile.linkType = 'audioSprite';
|
||||
jsonFile.linkType = 'audioSprite';
|
||||
|
||||
this.addFile(audioFile);
|
||||
}
|
||||
|
||||
return this;
|
||||
});
|
Loading…
Add table
Reference in a new issue