This is what works for me.
Define Loaders in xml. Set autoPlay to false so we don't hear them play as soon as they are loaded
?xml version="1.0" encoding="iso-8859-1"?>
<data>
<LoaderMax name="sampleQueue" load="true">
<MP3Loader url="H_Drums_AirVentOpen.mp3" name="H_Drums_AirVentOpen" autoPlay="false"/>
<MP3Loader url="H_Drums_FuelCapOpen.mp3" name="H_Drums_FuelCapOpen" autoPlay="false"/>
<MP3Loader url="H_Drums_HandbrakeOn.mp3" name="H_Drums_HandbrakeOn" autoPlay="false"/>
<MP3Loader url="H_Drums_hi-hat.mp3" name="H_Drums_hi-hat" autoPlay="false"/>
<MP3Loader url="H_Drums_kickdrum.mp3" name="H_Drums_kickdrum" autoPlay="false"/>
<MP3Loader url="H_Drums_snare.mp3" name="H_Drums_snare" autoPlay="false"/>
<MP3Loader url="H_Drums_Tap.mp3" name="H_Drums_Tap" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_01.mp3" name="H_ClassicBass_01" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_02.mp3" name="H_ClassicBass_02" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_03.mp3" name="H_ClassicBass_03" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_04.mp3" name="H_ClassicBass_04" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_05.mp3" name="H_ClassicBass_05" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_06.mp3" name="H_ClassicBass_06" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_07.mp3" name="H_ClassicBass_07" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_08.mp3" name="H_ClassicBass_08" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_09.mp3" name="H_ClassicBass_09" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_10.mp3" name="H_ClassicBass_10" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_11.mp3" name="H_ClassicBass_11" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_12.mp3" name="H_ClassicBass_12" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_13.mp3" name="H_ClassicBass_13" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_14.mp3" name="H_ClassicBass_14" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_15.mp3" name="H_ClassicBass_15" autoPlay="false"/>
<MP3Loader url="H_ClassicBass_16.mp3" name="H_ClassicBass_16" autoPlay="false"/>
</LoaderMax>
</data>
Load the XML with the MP3 loaders defined. I'm Using a couble of inner functions to keep tabs on progress, errrors etc
public function loadStuff() : void {
LoaderMax.activate([MP3Loader]);
// only necessary once - allows XMLLoader to recognize MP3Loader's in the XML
try {
loader = new XMLLoader(_cs_samplesPath + "samples.xml", {prependURLs:_cs_samplesPath, onProgress:sampleLoadProgressHandler, onComplete:sampleLoadCompleteHandler, onError:sampleLoadErrorHandler, estimatedBytes:50000});
loader.load();
} catch(error : Error) {
trace("Load Stuff has ");
}
function sampleLoadProgressHandler(event : LoaderEvent) : void {
// trace("progress: " + event.target.progress);
}
function sampleLoadErrorHandler(event : LoaderEvent) : void {
trace("error occured with " + event.target + ": " + event.text);
}
function sampleLoadCompleteHandler(event : LoaderEvent) : void {
createSamples();
}
}
Once they are loaded I use their names from the XML and the content of the MP3Loader to do what I need
private function createSamples() : void {
var sampleXML : XML = loader.content;
var sampleloaders : XMLList = sampleXML.child("LoaderMax").child("MP3Loader");
for (var i : int = 0; i < sampleloaders.length(); i++) {
var sampleName : String = sampleloaders[i].@name;
var voiceSound : Sound = LoaderMax.getContent(sampleName);
var newPCMVoice : SiONVoice = new SiONVoice();
newPCMVoice.setPCMVoice(voiceSound);
samplerVoices.push(newPCMVoice);
samplerVoicesNames.push(String(i) + "-" + sampleName);
}
getStarted();
}