Preloader using the loadSWF Class

Hi all,

I have recently looked at the Learning Actionscript 3 book, and am loading in seperate SWFs, the value of the loading percent is traced but im just wondering how I would transfer this to a preloader bar which was found on kirupa.

the loadSWF Code is:

package com.loading
{

    import flash.display.*;
    import flash.events.*;
    import flash.net.URLRequest;

    public class LoadSWF extends Sprite
    {

        private var _loader:Loader;
        private var _loaderInfo:LoaderInfo;
        private var _verbose:Boolean = false;
        private var _loadProgressString:String = "";
        private var _bytesLoaded:Number = 0;
        private var _bytesTotal:Number = 0;

        public function LoadSWF(path:String, verbose:Boolean)
        {
            _verbose = verbose;
            _loader = new Loader();
            //_loader.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);

            _loaderInfo = _loader.contentLoaderInfo;
            _loaderInfo.addEventListener(Event.OPEN, onOpen, false, 0, true);
            _loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress, false, 0, true);
            _loaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatusEvent, false, 0, true);
            _loaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);
            _loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
            _loaderInfo.addEventListener(Event.INIT, onInit, false, 0, true);
            _loaderInfo.addEventListener(Event.UNLOAD, onUnloadContent, false, 0, true);

            try
            {
                _loader.load(new URLRequest(path));
            }
            catch (err:Error)
            {
                trace("Unable to load content:
" + err.message);
            }

        }

        //private function onClick(evt:MouseEvent):void
        //{
        //    _loader.unload();
        //}

        private function onComplete(evt:Event):void
        {
            _loaderInfo.removeEventListener(Event.OPEN, onOpen);
            _loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
            _loaderInfo.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatusEvent);
            _loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
            _loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);

            addChild(_loader);
            dispatchEvent(new Event("displayObjectLoaded"));
        }
        private function onProgress(evt:ProgressEvent):void
        {
            var loadPercent:int = Math.round((evt.bytesLoaded/evt.bytesTotal)*100);
            _bytesLoaded = evt.bytesLoaded;
            _bytesTotal = evt.bytesTotal;
            _loadProgressString = (loadPercent + " % loaded: " + _bytesLoaded + " bytes of " + _bytesTotal + " total bytes");
            if (_verbose)
            {
                trace(_loadProgressString);
            }
        }
        //example getters to return data for use at runtime, rather than just tracing to Output panel

        //use when default string is desired (e.g. status field), once or with repeating event (enter frame, timer, etc.)
        public function get progressString():String
        {
            return _loadProgressString;
        }
        //use when number data is desired (e.g. progress bar), once or with repeating event (enter frame, timer, etc.)
        public function get progressNumberArray():Array
        {
            return [_bytesLoaded,_bytesTotal];
        }

        //if desired, add getter to return info from below. currently diagnostic tools, only tracing to Output panel

        private function onOpen(evt:Event):void
        {
            if (_verbose)
            {
                trace("Loading has begun.");
            }
        }
        private function onHTTPStatusEvent(evt:HTTPStatusEvent):void
        {
            if (_verbose)
            {
                trace("HTTP status code: " + evt.status);
            }
        }

        private function onIOError(evt:IOErrorEvent):void
        {
            if (_verbose)
            {
                trace("A loading error occurred:
", evt.text);
            }
        }

        private function onInit(evt:Event):void
        {
            _loaderInfo.removeEventListener(Event.INIT, onInit);
            //properties of loaded asset now accessable
            if (_verbose)
            {
                trace("Content initialized. Properties:");
                trace("    url:", evt.target.url);
                trace("    Same Domain:", evt.target.sameDomain);
                if (evt.target.contentType == "application/x-shockwave-flash")
                {
                    trace("    SWF Version:", evt.target.swfVersion);
                    trace("    AS Version:", evt.target.actionScriptVersion);
                    trace("    Frame Rate:", evt.target.frameRate);
                }
            }
        }

        private function onUnloadContent(evt:Event):void
        {
            //halt streams in loaded content first
            _loaderInfo.removeEventListener(Event.UNLOAD, onUnloadContent);
            if (_verbose)
            {
                trace("unLoadHandler:
", evt);
            }
        }
    }
}

I would like to change the kirupa FLA to run from this class, which has this coding on it

var imageLoader:Loader;

function loadImage(url:String):void {
    // Show Preloader
    preloader.visible = true;
    
    // Set properties on my Loader object
    imageLoader = new Loader();
    imageLoader.load(new URLRequest(url));
    imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
loadImage("pixelHouses.jpg");

function imageLoaded(e:Event):void {
    // Load Image
    imageLoadArea.addChild(imageLoader);
    
    // Hide Preloader
    preloader.visible = false;
}

function imageLoading(e:ProgressEvent):void {
    // Get current download progress
    var loaded:Number = e.bytesLoaded / e.bytesTotal;
    
    // Send progress info to "preloader" movie clip
    preloader.SetProgress(loaded);
}

Any help would be appreciated thanks!!