когда перехожу на любую точку трека "дёргается" уровень звука, не могу понять сфигали ((
может кто-то сталкивался..

Код AS3:
package {
import flash.media.SoundMixer;
import flash.events.Event;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.utils.ByteArray;
import flash.display.Loader;
import flash.display.LoaderInfo;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.events.IOErrorEvent;
public class StartPlayingMP3 extends Sprite {
private var _sound:Sound = new Sound;
private var _soundChannel:SoundChannel = new SoundChannel;
public var url:String = stage.loaderInfo.parameters.soundFile;
public var _soundTitle:String = stage.loaderInfo.parameters.soundTitle;
public var _soundArtist:String = stage.loaderInfo.parameters.soundArtist;
public var request_sound: URLRequest = new URLRequest(url);
public var soundTrans: SoundTransform = SoundMixer.soundTransform;
public var _playing: Number = 0;
var resume_time: Number = 0;
public var Volume_saver: Number;
public var Volume_position: Number;
public var Volume_const: Number = 0.25;
public var flag: Number = 1;
public var flag2: Number = 1;
public var myLoader:Loader = new Loader();
public function StartPlayingMP3():void {
var Artist:String;
var SongName:String;
stage.showDefaultContextMenu = false;
stage.scaleMode = flash.display.StageScaleMode.NO_SCALE,
stage.align = flash.display.StageAlign.TOP_LEFT;
volume_mc.y = -20.9;
_text.Timer_field1.y = -20;
_text.Timer_field2.y = -20;
_text.Name_field1.selectable = false;
_text.Name_field2.selectable = false;
_text.Timer_field1.selectable = false;
_text.Timer_field2.selectable = false;
_text.Name_field1.text = url ? url : "corructed"
_text.Name_field2.text = url ? url : "corructed"
Artist=convert(_soundArtist);
SongName=convert(_soundTitle);
_text.Name_field1.text = Artist+" "+"-"+" "+SongName;
_text.Name_field2.text = Artist+" "+"-"+" "+SongName;
// проверяем существование файла
_sound.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
play_bt.addEventListener(MouseEvent.CLICK, onClickPlay);
_text.maska.scaleX = 0;
status_musik_bar.scaleX = 0;
progress_bar.scaleX = 0;
play_bt.visible = true;
ramka_play.visible = false;
ramka_loaded.visible = true;
pause_bt.visible = false;
volume_mc.vol_mute.visible=0;
setVolume();
Volume_saver = 0.25;
navigator.addEventListener(MouseEvent.CLICK, goAndPlay);
addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
public function ioErrorHandler(event:IOErrorEvent):void {
play_bt.removeEventListener(MouseEvent.CLICK, onClickPlay);
navigator.removeEventListener(MouseEvent.CLICK, goAndPlay);
removeEventListener(Event.ENTER_FRAME,onEnterFrame);
pause_bt.removeEventListener(MouseEvent.CLICK, onClickPause);
volume_mc.removeEventListener(MouseEvent.CLICK, changeVolume);
_text.Name_field1.text = "File corrupted or not found";
_text.Name_field2.text = "File corrupted or not found";
volume_mc.visible = false;
_text.Timer_field1.visible = false;
_text.Timer_field2.visible = false;
}
public function onClickPlay(event:MouseEvent):void {
if (flag2==1){
var show_volume:Tween = new Tween(volume_mc,"y",Regular.easeInOut,-20.9,0.1,1,true);
var show_time1:Tween = new Tween(_text.Timer_field1,"y",Regular.easeInOut,-20,0.0,1,true);
var show_time2:Tween = new Tween(_text.Timer_field2,"y",Regular.easeInOut,-20,0.0,1,true);
volume_mc.x = 548.9;
_sound.load(request_sound);
}
flag2 = 0;
SoundMixer.stopAll();
soundTrans.volume = Volume_saver;
pause_bt.addEventListener(MouseEvent.CLICK, onClickPause);
volume_mc.addEventListener(MouseEvent.CLICK, changeVolume);
_soundChannel = _sound.play(resume_time);
if (Volume_saver==0) {volume_mc.vol_mute.visible=1;}
else {volume_mc.vol_mute.visible=0;}
play_bt.visible = false;
pause_bt.visible = true;
_playing = 1;
if (flag==1)
{volume_mc.vol_mask_mc.x = Volume_const*volume_mc.width;}
soundTrans.volume = Volume_saver;
_soundChannel.soundTransform=soundTrans;
}
public function onClickPause(event:MouseEvent):void {
pause_bt.visible = false;
play_bt.visible = true;
resume_time = _soundChannel.position;
_soundChannel.stop();
_playing = 0;
flag=0;
}
public function onEnterFrame(event:Event):void {
soundTrans.volume = Volume_saver;
_soundChannel.soundTransform=soundTrans;
progress_bar.scaleX = Math.round((_soundChannel.position/_sound.length)*10000)*0.0001;
status_musik_bar.scaleX = Math.round((_sound.bytesLoaded/_sound.bytesTotal)*10000)*0.0001;
_text.maska.scaleX = Math.round((_soundChannel.position/_sound.length)*10000)*0.0001;
_soundChannel.addEventListener(Event.SOUND_COMPLETE, onComplete);
TimeControl();
if (_soundChannel.position == _sound.length) {
status_musik_bar.scaleX = 0;
progress_bar.scaleX = 0;
_text.maska.scaleX = 0;
}
}
public function onComplete(event:Event):void {
status_musik_bar.scaleX = 0;
progress_bar.scaleX = 0;
_text.maska.scaleX = 0;
play_bt.visible = true;
ramka_play.visible = false;
ramka_loaded.visible = true;
pause_bt.visible = false;
resume_time = 0;
}
// конвертация в правильную кодировку
public function convert(data:String):String {
var b:ByteArray = new ByteArray();
for (var i:uint = 0; i<data.length; i++) {
b[ i ] = data.charCodeAt( i );
}
return b.readMultiByte(b.bytesAvailable,'win-1251');
}
public function goAndPlay(event:MouseEvent):void {
// 522 ширина полосы проигрывания
var p:int = _sound.length * event.currentTarget.mouseX / 522;
if (Volume_saver==0) {volume_mc.vol_mute.visible=1;}
else {volume_mc.vol_mute.visible=0;}
_soundChannel.stop();
_soundChannel = _sound.play(p);
soundTrans.volume = Volume_saver;
if (_playing == 1) {
play_bt.visible = false;
pause_bt.visible = true;
} else {
resume_time = _soundChannel.position;
_soundChannel.stop();
play_bt.visible = true;
pause_bt.visible = false;
}
}
public function changeVolume(event:MouseEvent):void {
soundTrans.volume = event.currentTarget.mouseX/48 ;
Volume_saver = soundTrans.volume;
_soundChannel.soundTransform=soundTrans;
volume_mc.vol_mask_mc.x = event.currentTarget.mouseX;
Volume_position = volume_mc.vol_mask_mc.x;
}
public function TimeControl():void {
var timeMinutes:String = String(Math.floor(_soundChannel.position / 59500));
var timeSeconds:String = String(Math.round(_soundChannel.position / 1000) % 60);
if (timeSeconds.length == 1) {
timeSeconds = "0" + timeSeconds;
}
_text.Timer_field1.text = timeMinutes + ":" + timeSeconds;
_text.Timer_field2.text = timeMinutes + ":" + timeSeconds;
}
public function setVolume():void{
var Volume:int = 0.25;
soundTrans.volume = Volume;
}
}
}