Смысл такой, есть кнопка выкл/вкл звука. При выключении таймером через каждую 0,1 сек снижается громкость до 0. Обратно также. Вот набросал код:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.net.URLRequest;
public class ShortTimer extends MovieClip
{
public var snd:Sound;
public var chnl:SoundChannel;
public var transf:SoundTransform;
public var position:uint;
public var timerVol:Timer = new Timer(100);
public var flag:Boolean;
public function ShortTimer()
{
flag = true;
sndBtn.buttonMode = true;
snd = new Sound(new URLRequest("Urban birds.mp3"));
chnl = snd.play(0, 10000);
transf = new SoundTransform();
sndBtn.addEventListener(MouseEvent.CLICK, onSndBtnClicked);
timerVol.addEventListener(TimerEvent.TIMER, onTimerListener);
trace(transf.volume);
}
//кнопка
public function onSndBtnClicked(event:MouseEvent):void
{
timerVol.start();
sndBtn.play();// у sndBtn два кадра: "выкл." и "вкл."
chnl.soundTransform = transf;
flag = !flag;
}
//таймер
public function onTimerListener(event:TimerEvent):void
{
if (flag)
{
transf.volume += .1;
} else
{
transf.volume -= .1;
}
//не выходить из пределов от 0 до 1
if (transf.volume >= 1)
{
transf.volume = 1;
timerVol.reset();
}else if(transf.volume <= 0)
{
transf.volume = 0;
timerVol.reset();
}
trace("transf.volume = " + transf.volume);
}
}
}
Только уже совсем непонятно, почему глюки. Про плавное изменение громкости вообще молчу.
На всякий случай выкладываю все файлы.