package
{
    import flash.display.Sprite;
    import flash.display.Shape;
    import flash.events.Event;
    import zip.ZIPResourceLoader;
    import flash.events.ProgressEvent;

    public class ProgressBar extends Sprite
    {
        public var progressBar:Shape;
        private var backgroundBar:Shape;
        public var progress:Number;
        private var maxWidth:Number;
        private var maxHeight:Number;
        public var resourceLoader:ZIPResourceLoader;
        private var bytesLoaded:Number;
        private var bytesTotal:Number;
		private var direction:int = 1; // Направление анимации (1 - вперед, -1 - назад)
        private var animationSpeed:Number = 0.01; // Скорость анимации прогресс-бара
		private var rectangle:Shape = new Shape();

        public function ProgressBar()
        {
            init();
        }

        public function setResourceLoader(resourceLoader:ZIPResourceLoader):void 
		{
            resourceLoader.addEventListener(ProgressEvent.PROGRESS, onProgressUpdate);
        }

        public function onProgressUpdate(event:ProgressEvent):void 
		{
            progress = event.bytesLoaded / event.bytesTotal;
            updateProgressBar();
        }
		
public function smallProgressBar():void
{
    // Обновление параметров размеров прогресс-бара
    maxWidth = 54;
    maxHeight = 34;
    var cornerRadius:Number = 5;
    var yOffset:Number = -3; // смещение по вертикали на 2 пикселя
    
    // Создание прямоугольника
    var rectangle:Shape = new Shape();
    rectangle.graphics.beginFill(0x348aee);
    rectangle.graphics.drawRoundRect(0, yOffset, maxWidth, maxHeight, cornerRadius, cornerRadius);
    rectangle.graphics.endFill();
    
    addChild(rectangle);

    var direction:int = 1; // Направление анимации (1 - вперед, -1 - назад)
    var speed:Number = 7; // Скорость анимации (пиксели за шаг)
    var targetX:Number = 650; // Конечная позиция прямоугольника

    addEventListener(Event.ENTER_FRAME, animateProgressBar);

    function animateProgressBar(event:Event):void
    {
        rectangle.x += direction * speed;
        
        if (rectangle.x >= targetX || rectangle.x <= 0)
        {
            direction *= -1; // Переключение направления анимации
        }
    }
}


        private function init():void
        {
	        resourceLoader = new ZIPResourceLoader(this);
            maxWidth = 700;
            maxHeight = 28;
            progress = 0;

            backgroundBar = new Shape();
            backgroundBar.graphics.beginFill(0x014ca3);
			 var cornerRadius:Number = 10;
            backgroundBar.graphics.drawRoundRect(0, 0, maxWidth, maxHeight, cornerRadius);
			        
            backgroundBar.graphics.endFill();

            progressBar = new Shape();

            addChild(backgroundBar);
            addChild(progressBar);

            addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
            addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
        }

        private function onAddedToStage(event:Event):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
            addEventListener(Event.ENTER_FRAME, onUpdate);
        }

        private function onRemovedFromStage(event:Event):void
        {
            removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
            removeEventListener(Event.ENTER_FRAME, onUpdate);
        }

        private function onUpdate(event:Event):void
        {
            progress += 0.005; // Увеличьте прогресс на 0.01 каждый фрейм
            if (progress > 1) progress = 1; // Убедитесь, что прогресс не превышает 1
            updateProgressBar();
        }
		
		public function updateProgressBars():void
{
    progressBar.graphics.clear();
    progressBar.graphics.beginFill(0x348aee);
    var cornerRadius:Number = 3;
    var yOffset:Number = -2; // смещение по вертикали на 2 пикселя
    
    var barWidth:Number = maxWidth * progress;
    if (barWidth > maxWidth) {
        barWidth = maxWidth;
    } else if (barWidth < 0) {
        barWidth = 0;
    }
    
    progressBar.graphics.drawRoundRect(0, yOffset, barWidth, maxHeight + 4, cornerRadius);

    progressBar.graphics.endFill();
}



        public function updateProgressBar():void
        {
            progressBar.graphics.clear();
            progressBar.graphics.beginFill(0x348aee);
            var cornerRadius:Number = 3;
            var yOffset:Number = -2; // смещение по вертикали на 2 пикселя
            progressBar.graphics.drawRoundRect(0, yOffset, maxWidth * progress, maxHeight + 4, cornerRadius);

            progressBar.graphics.endFill();
        }

        public function setProgress(value:Number, maxValue:Number = 1):void 
		{
            progress = value / maxValue;
            if (progress < 0) 
			{
                progress = 0;
            } 
			else if (progress > 1) 
			{
                progress = 1;
            }
            updateProgressBar();
        }
    }
} как сделать чтобы smallProgressBar когда доходит до конечной позиции то он как будто закатывается куда то