I don't know if this has been documented or not. I've never seen anyone report it.
If you set a Sound to loop, it's channel.position property returns a number out of range of the Sound.length after it loops. The position property just keeps on incrementing beyond the length when you loop a sound.
If you try to play a Sound from that out of range position, the Sound glitches out, because that position is invalid. Flash should not return a position to you that you cannot use.
This all revolves around the fact that Sound has absolutely no way to pause right now. I don't know why Adobe did not give us a channel.pause() method, but they didn't. Because they didn't, this bug gets worse.
The only way to pause and unpause a sound in Flash is to store the current position of the channel and call channel.stop, and when you unpause, you call sound.play(position).
If the sound is looping, the position returned will eventually be higher than the length, which means the Sound glitches because you're passing an out of range position, a position, once again, that Flash returned to you as VALID.
Wait, it gets worse. If you unpause a looping sound by passing its position, when it loops, it will loop from that position, not the beginning of the Sound. Do you see how this gets worse?
There is no pause method, and without a pause method, there is no workaround for the above bug and issue except to manually loop a Sound by adding an event listener to the sound complete event (which can be unreliable), and calling play on it again and managing the looping manually, which undermines the loops argument of the Sound.play() method and requires a fair amount of code.
We need a channel.pause(flag:Boolean) method. _______________________________________________ Flashcoders mailing list [email protected] http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

