Try to preload a path group only once
This commit is contained in:
@@ -453,41 +453,6 @@ class AssetLibrary {
|
|||||||
|
|
||||||
public function loadAudioBuffer (id:String):Future<AudioBuffer> {
|
public function loadAudioBuffer (id:String):Future<AudioBuffer> {
|
||||||
|
|
||||||
// TODO: Better solution
|
|
||||||
|
|
||||||
#if (js && html5)
|
|
||||||
if (pathGroups == null) {
|
|
||||||
|
|
||||||
pathGroups = new Map<String, Array<String>> ();
|
|
||||||
|
|
||||||
var sounds = new Map<String, Array<String>> ();
|
|
||||||
var type, path, soundName;
|
|
||||||
|
|
||||||
for (id in types.keys ()) {
|
|
||||||
|
|
||||||
type = types.get (id);
|
|
||||||
|
|
||||||
if (type == MUSIC || type == SOUND) {
|
|
||||||
|
|
||||||
path = paths.get (id);
|
|
||||||
soundName = Path.withoutExtension (path);
|
|
||||||
|
|
||||||
if (!sounds.exists (soundName)) {
|
|
||||||
|
|
||||||
sounds.set (soundName, new Array ());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sounds.get (soundName).push (path);
|
|
||||||
pathGroups.set (id, sounds.get (soundName));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
#end
|
|
||||||
|
|
||||||
if (cachedAudioBuffers.exists (id)) {
|
if (cachedAudioBuffers.exists (id)) {
|
||||||
|
|
||||||
return Future.withValue (cachedAudioBuffers.get (id));
|
return Future.withValue (cachedAudioBuffers.get (id));
|
||||||
@@ -499,11 +464,15 @@ class AssetLibrary {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
#if (js && html5)
|
#if (js && html5)
|
||||||
return AudioBuffer.loadFromFiles (pathGroups.get (id));
|
if (pathGroups.exists (id)) {
|
||||||
#else
|
|
||||||
return AudioBuffer.loadFromFile (paths.get (id));
|
return AudioBuffer.loadFromFiles (pathGroups.get (id));
|
||||||
|
|
||||||
|
}
|
||||||
#end
|
#end
|
||||||
|
|
||||||
|
return AudioBuffer.loadFromFile (paths.get (id));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -679,6 +648,57 @@ class AssetLibrary {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Better solution
|
||||||
|
|
||||||
|
#if (js && html5)
|
||||||
|
if (pathGroups == null) {
|
||||||
|
|
||||||
|
pathGroups = new Map<String, Array<String>> ();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var sounds = new Map<String, Array<String>> ();
|
||||||
|
var preloadGroups = new Map<String, Bool> ();
|
||||||
|
var type, path, soundName;
|
||||||
|
|
||||||
|
for (id in types.keys ()) {
|
||||||
|
|
||||||
|
type = types.get (id);
|
||||||
|
|
||||||
|
if (type == MUSIC || type == SOUND) {
|
||||||
|
|
||||||
|
path = paths.get (id);
|
||||||
|
soundName = Path.withoutExtension (path);
|
||||||
|
|
||||||
|
if (!sounds.exists (soundName)) {
|
||||||
|
|
||||||
|
sounds.set (soundName, new Array ());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sounds.get (soundName).push (path);
|
||||||
|
pathGroups.set (id, sounds.get (soundName));
|
||||||
|
|
||||||
|
if (preload.exists (id)) {
|
||||||
|
|
||||||
|
if (preloadGroups.exists (soundName)) {
|
||||||
|
|
||||||
|
preload.remove (id);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
preloadGroups.set (soundName, true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user