
Код:
import mx.utils.Delegate;
//
var my_video:Video;
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_ns.play('somevideo.flv');
my_video.attachVideo(my_ns);
this.attachAudio(my_ns);
snd = new Sound(this);
var slide_mc:MovieClip = slide;
var drag_mc:MovieClip = slide.drag;
var bar_mc:MovieClip = slide.bar;
bar_mc.onRelease = Delegate.create(this, stopSetVov);
bar_mc.onReleaseOutside = Delegate.create(this, stopSetVov);
drag_mc.onRelease = Delegate.create(this, stopSetVov);
drag_mc.onReleaseOutside = Delegate.create(this, stopSetVov);
bar_mc.onPress = Delegate.create(this, startSetVol);
drag_mc.onPress = Delegate.create(this, startSetVol);
function startSetVol():Void {
bar_mc.onEnterFrame = Delegate.create(this, setVol);
}
function stopSetVov():Void {
delete bar_mc.onEnterFrame;
}
function setVol():Void {
if(bar_mc._xmouse * bar_mc._xscale /100 >= bar_mc._x && bar_mc._xmouse * bar_mc._xscale /100 <= bar_mc._width + bar_mc._x){
drag_mc._x = bar_mc._xmouse * bar_mc._xscale /100 - bar_mc._x;
} else if(bar_mc._xmouse < bar_mc._x){
drag_mc._x = bar_mc._x;
} else {
drag_mc._x = bar_mc._width + bar_mc._x;
}
snd.setVolume(drag_mc._x * 100/(bar_mc._width + bar_mc._x));
trace('Volume set to: '+(drag_mc._x * 100/(bar_mc._width + bar_mc._x)));
}
Предварительно вынеся клип slide на основную сцену, или в определении переменных указать правильные пути к его частям.
Кроме того, в ликейдж айди убрать всякие упоминания о его связи с несуществующими классами %)
И приучать себя не писать код на клипах, а еще лучше - в одельных файлах, гораздо удобнее будет работать.
А еще лучше, чтобы избежать всяких "поправок" в вычислениях, если нет суровой необходимости, располагать клипы в координатах х=0, у=0. Аналогично не растягивать\сжимать (ну нет никакого смысла в том, чтобы нарисовать прямоугольник, запихать его в клип, а потом сжать этот клип. Проще же сразу создать прямоугольник нужной ширины, и поправок на _xscale делать не прийдеться!)