я думаю что когда у тебя q<0 то это же не то setVolume таких значений не понимать вот и ставит как было 100... ты setInterval то убивай когда q<0.

Код:
function SoundVolume (UpDown:String) {
if (UpDown == "UP") {
BgSound.setVolume (setCont);
if (setCont >= bgSndMaxVolume) {
clearInterval (Volume);
} else {
setCont++;
}
} else if (UpDown == "DOWN" || UpDown == "OVER") {
BgSound.setVolume (setCont);
trace (BgSound.getVolume ());
if (setCont <= 0) {
if (UpDown == "OVER") {
BgSound.stop ();
}
clearInterval (Volume);
} else {
setCont--;
}
}
}
Volume = setInterval (SoundVolume, spdVolmChang, "UP");
вырезаю тебе мой код из проекта не давнешнего

юзай на здоровье
тама правда еще перемнки глобальные нос суют сам разберешься..
