Ok, starting off with an example, heres an example where it loops infinitely and you are able to pause and resume it.
The code hasn't changed much but there are some subtle differences that have a lot of effect on the outcome.
When the pause button is pressed a new variable is set which tells the play button where to replay the sound from. Lets look at the code.
import flash.media.Sound;
var sound:Sound = new acoust();
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, the new pause position variable is the first new thing, it is set at 0 when the movie starts, this is the start of the sound.
The next change is within the soundplay function. Where instead of the channel = sound.play(0, 99) with channel.play(pausePosition), so to recap, this is to play the sound from pauseposition, which i set earlier.
Next i add the event listener for when the sound finishes, so i can loop it. ( i can't loop it the way i did last time as this interferes with the pause function)
The next change is the most important one, where i update the pausePosition when the stopbut button is pressed. This sets the place from which you can resume the play back when you press play.
The last thing i changed was to make a function which loops the music, it literally checks to see if the sound has finished and then replays the sound if it is.
Ok thats the basic sound tutorials over.