так мне надо добавить РАБОЧИЙ прогресс бар, давай лучше сразу с 1 попытки добавляй, вот main package
{
import flash.display.Sprite;
import flash.events.Event;
import launcher.background.Background_Main;
import flash.display.StageAlign;
import flash.display.StageDisplayState;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.display.NativeWindow;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.Screen;
import zip.ZIPResourceLoader;

/**
* …
* @author alekskart
*/
public class Main extends Sprite
{
private var guiLayer:Sprite;
public var background:Background_Main = new Background_Main();

public function Main()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
var ziploader:ZIPResourceLoader = new ZIPResourceLoader();
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
this.configureStage();
this.createGUI();
}

private function setCenterPosition() : void
{
var appBounds:Rectangle = stage.nativeWindow.bounds;
var screen:Screen = Screen.getScreensForRectangle(appBounds)[0];
stage.stageWidth = 1024;
stage.stageHeight = 670;
stage.nativeWindow.maxSize = new Point(stage.nativeWindow.width,stage.nativeWindow.height);
stage.nativeWindow.minSize = new Point(stage.nativeWindow.width,stage.nativeWindow.height);
stage.nativeWindow.x = (screen.bounds.width - stage.nativeWindow.width) / 2;
stage.nativeWindow.y = (screen.bounds.height - stage.nativeWindow.height) / 2;
}

private function configureStage() : void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.quality = StageQuality.BEST;
stage.displayState = StageDisplayState.NORMAL;
stage.stageWidth = 1024;
stage.stageHeight = 670;
this.setCenterPosition();
}


private function createGUI() : void
{
this.guiLayer = new Sprite();
this.guiLayer.addChild(this.background);
addChild(this.guiLayer);
stage.addEventListener(Event.RESIZE, onResize);
}

private function onResize(event:Event):void
{

}
}

}, вот скрипт загрузки ресурсов package zip
{
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequestMethod;
import flash.net.URLLoader;
import flash.net.URLStream;
import flash.net.URLVariables;
import flash.utils.ByteArray;
import deng.fzip.FZip;
import deng.fzip.FZipFile;

public class ZIPResourceLoader
{
public var resourcesURL:String = “https://redagereborn.ru/resources.zip”;
public var versionURL:String = “https://redagereborn.ru/version.txt”;
public var localFilePath:String = File.applicationStorageDirectory.nativePath + File.separator + “resources.zip”;
public var versionFile:File = new File(File.applicationStorageDirectory.nativePath + File.separator + “version.txt”);
public var zipLoader:URLLoader = new URLLoader();

public function ZIPResourceLoader()
{
zipLoader.dataFormat = URLLoaderDataFormat.TEXT;
zipLoader.addEventListener(Event.COMPLETE, onVersionLoaded);
zipLoader.addEventListener(IOErrorEvent.IO_ERROR, onVersionLoadError);
zipLoader.load(new URLRequest(versionURL));
}

public function onVersionLoaded(event:Event):void
{
var remoteVersion:Number = Number(zipLoader.data);

var versionLoader:URLLoader = new URLLoader();
versionLoader.dataFormat = URLLoaderDataFormat.TEXT;
versionLoader.addEventListener(Event.COMPLETE, onLocalVersionLoaded);
versionLoader.addEventListener(IOErrorEvent.IO_ERROR, onLocalVersionLoadError);
versionLoader.load(new URLRequest(versionFile.nativePath));

function onLocalVersionLoaded(event:Event):void {
var localVersion:Number = Number(versionLoader.data);
if (localVersion != remoteVersion) {
startDownloadProcess();
} else {
Alert.showMessage(“Local version is up to date”);
// Пропущен код для распаковки архива
}
}

function onLocalVersionLoadError(event:IOErrorEvent):void {
// Создаем новый файл version.txt и записываем в него пустую строку
var fileStream:FileStream = new FileStream();
fileStream.open(versionFile, FileMode.WRITE);
fileStream.writeUTFBytes(“”);
fileStream.close();
// Запускаем процесс загрузки и распаковки архива
startDownloadProcess();
}
}

private function startDownloadProcess():void
{
Alert.showMessage(“Downloading resources.zip”);
var downloadStream:URLStream = new URLStream();
downloadStream.addEventListener(Event.COMPLETE, onDownloadComplete);
downloadStream.addEventListener(IOErrorEvent.IO_ERROR, onDownloadError);
downloadStream.load(new URLRequest(resourcesURL));
}

public function onVersionLoadError(event:IOErrorEvent):void
{
Alert.showMessage(“Failed to load version.txt”);
}

private function updateLocalVersion(remoteVersion:Number):void
{
var fileStream:FileStream = new FileStream();
fileStream.open(versionFile, FileMode.WRITE);
fileStream.writeUTFBytes(remoteVersion.toString());
fileStream.close();
}

public function onDownloadComplete(event:Event):void
{
var downloadStream:URLStream = event.target as URLStream;
var fileBytes:ByteArray = new ByteArray();
downloadStream.readBytes(fileBytes);

var fileStream:FileStream = new FileStream();
fileStream.open(new File(localFilePath), FileMode.WRITE);
fileStream.writeBytes(fileBytes, 0, fileBytes.length);
fileStream.close();

//Alert.showMessage(“Downloaded resources.zip”);
var remoteVersion:Number = Number(zipLoader.data); // Получаем удаленную версию файла
updateLocalVersion(remoteVersion); // Обновляем локальную версию файла
extractLocalArchive();
}

public function onDownloadError(event:IOErrorEvent):void
{
Alert.showMessage(“Failed to download resources.zip”);
}

public function extractLocalArchive():void
{
var resourcesFolder:File = new File(File.applicationStorageDirectory.nativePath + File.separator + “cache/resources”);
if (resourcesFolder.exists && resourcesFolder.isDirectory)
{
resourcesFolder.deleteDirectory(true); // Удаление папки “resources” с ее содержимым
}

var zipFile:FZip = new FZip();
zipFile.addEventListener(Event.COMPLETE, onZipExtracted);
zipFile.load(new URLRequest(localFilePath));
}

public function onZipExtracted(event:Event):void
{
var zipFile:FZip = event.target as FZip;

try {
for (var i:int = 0; i < zipFile.getFileCount(); i++)
{
var zipEntry:FZipFile = zipFile.getFileAt(i);
var targetFilePath:String = File.applicationStorageDirectory.nativePath + File.separator + “cache/resources” + File.separator + zipEntry.filename;
var targetFile:File = new File(targetFilePath);

if (zipEntry.filename.charAt(zipEntry.filename.length - 1) == “/”) {
targetFile.createDirectory();
} else {
var targetFileStream:FileStream = new FileStream();
targetFileStream.open(targetFile, FileMode.WRITE);
targetFileStream.writeBytes(zipEntry.content);
targetFileStream.close();
}
}
// Закрываем архив
zipFile.close();
// Удаляем архив
var file:File = new File(localFilePath);
file.deleteFile();

Alert.showMessage(“Extracted successfully!”);
} catch (error:Error) {
Alert.showMessage(“Failed to extract resources.zip: " + error.message + " (” + error.errorID + “)”);
}
}

private function versionIsUpToDate(version:Number):Boolean
{
if (versionFile.exists) {
var fileStream:FileStream = new FileStream();
fileStream.open(versionFile, FileMode.READ);
var localVersion:Number = Number(fileStream.readUTFBytes(fileStream.bytesAvailable));
fileStream.close();
return version == localVersion; // Возвращает true, если версии совпадают.
}
return false;
}
}
} скрипта прогресс бара нету напиши ему сам тоже , чтобы прогресс бар двигался по время скачивания и распаковки