пакет ком { импорт flash.display. MovieClip ; импорт flash.utils.Timer; импорт flash.events.TimerEvent; импорт flash.events.MouseEvent; импорт flash.geom.Rectangle; общественный класс DragMusic расширяет MovieClip { личное уаг dragMc: MovieClip ; частный вар lineMc: MovieClip ; частный вар progressMc: MovieClip ; частный вар moveMc: MovieClip; частный вар таймер: Таймер = новый таймер (25 ); частный вар thisMc: MovieClip ; частный вар прн: Прямоугольник; публичная функция DragMusic (_dragMc: мувиклип , _lineMc: мувиклип , _progressMc: мувиклип , _moveMc: MovieClip ) { lineMc = _lineMc; dragMc = _dragMc; moveMc = _moveMc; progressMc = _progressMc; progressMc.mouseChildren = ложь ; progressMc.mouseEnabled = ложь ; thisMc = dragMc.parent , как MovieClip ; lineMc.addEventListener (MouseEvent.MOUSE_DOWN, Интернет); dragMc.addEventListener (MouseEvent.MOUSE_DOWN, onDrag); timer.addEventListener (TimerEvent.TIMER, OnTimer); timer.start (); ЗАП = новый прямоугольник (lineMc.x, lineMc.y, lineMc.width, 0 ); } Частная функция onDrag (е: MouseEvent) { если (== e.type"MouseDown" ) { thisMc.stage.addEventListener (MouseEvent.MOUSE_UP, onDrag); thisMc.stage.addEventListener (MouseEvent.MOUSE_MOVE, onDrag); dragMc.startDrag ( ложь , рекомендация); moveMc.stop (); timer.stop (); } Иначе , если (e.type == "MouseMove" ) { moveFun () } еще если (e.type == "MouseUp" ) { thisMc.stage.removeEventListener (MouseEvent.MOUSE_UP, onDrag); thisMc.stage.removeEventListener (MouseEvent.MOUSE_MOVE, onDrag); stopDrag (); timer.start (); moveMc.play (); } } moveFun () {Собственной функции Интернет (е: MouseEvent) { уаг clickNum: Number = mouseX; dragMc.x = clickNum; moveFun () } частная функция OnTimer (е: TimerEvent) { dragMc.x = (moveMc.currentFrame * lineMc.width) / moveMc.totalFrames + lineMc.x; progressMc.width = dragMc.x- lineMc.x; } Частная функция -lineMc.x) * moveMc.totalFrames moveMc.gotoAndPlay (интермедиат ((dragMc.x/ LineMc.width)); progressMc.width = dragMc.x- lineMc.x; } } }