Loading sound from an external source (i.e, not embedded in the .swf file) is really easy to do once you know how. I am going to use the same example as i used for the last tutorial but the sound is not going to be embedded in the .swf it is going to be hosted on my site
Here is the example. I have changed the sound to a whole song to demonstrate how quickly it takes to load.
Important!
Before i started i uploaded a .mp3 file to the internet so that i could call it with a URL request in this code.
You will need to do this for this code to work from the internet, alternatively you can put a sound file in the root classpath of your .fla (this is usually the same folder as the .fla).
Another important note
if you are loading a file on the internet change you publish settings for flash to “access network file only” and if you are loading it from a folder change it to “access local files only”.
To do this it was simple. I replaced one line of the old code for three more lines of code.
I replaced the line:
var sound:Sound = new acoust();
with:
var loadsound:URLRequest = new URLRequest(“http://where my mp3 file is on the internet.mp3″);
var sound:Sound = new Sound();
sound.load(loadsound);
Line 1: a new variable called loadsound which requests the file from the url mentioned inside the brackets and the “”
line 2: a variable like before that holds a blank instance of the sound class instead of the class that we made called acoust.
line 3: loading the sound that we got from the internet via the URL request into the blank instance of the sound class that we named earlier.
Note: if you want to load the sound locally from a folder you just replace “http://where my mp3 file is on the internet.mp3″ with “sound name.mp3”
The complete code for ease.
import flash.media.Sound;
var loadsound:URLRequest = new URLRequest(“http://where my mp3 file is on the internet.mp3″);
var sound:Sound = new Sound();
sound.load(loadsound);
var channel:SoundChannel;
var soundisplaying:Boolean = false;
var pausePosition:int = 0;
playbut.addEventListener(MouseEvent.CLICK, playsound);
stopbut.addEventListener(MouseEvent.CLICK, stopsound);
function playsound(event:Event):void {
if (soundisplaying==false) {
channel = sound.play(pausePosition);
soundisplaying = true;
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete);
}
}
function stopsound(event:Event):void {
pausePosition = channel.position;
channel.stop();
soundisplaying =false;
}
function soundComplete(event:Event):void {
channel = sound.play();
channel.addEventListener(Event.SOUND_COMPLETE, soundComplete);
}
Ok this will hopefully help some of you.
i am going away for a week so don’t expect any more posts until i get back!


