# Multi purpose preloader

**URL:** <https://forum.kirupa.com/t/multi-purpose-preloader/230648>\
**Category:** flash\
**Created:** [June 27, 2007, 9:38pm UTC](https://forum.kirupa.com/t/multi-purpose-preloader/230648 "2007-06-27T21:38:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![costa](https://avatars.discourse-cdn.com/v4/letter/c/85f322/32.png) [@costa](https://forum.kirupa.com/u/costa)\
**Post date:** [June 27, 2007, 9:38pm UTC](https://forum.kirupa.com/t/multi-purpose-preloader/230648/1 "2007-06-27T21:38:29Z")

</div>

Dear all,

I am finishing a preloader that will let me to reuse my code, basically to load XML, imaged and swf . I want to know if what I am doing it is the most efficient way

General function for listeners

```auto
function myListeners(dispatcher:IEventDispatcher):void {
   dispatcher.addEventListener(Event.COMPLETE, handleComplete,false, 0 , true);
   dispatcher.addEventListener(ProgressEvent.PROGRESS, handleProgress,false, 0 , true);
   dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler,false, 0 , true);
}

```

To create listeners

XML

```auto
function loadXML(){
	xml_URL = "myFile.xml";
	xmlRequest = new URLRequest(xml_URL);
	xmlLoader = new URLLoader(xmlRequest);
	myListeners(xmlLoader);
}

```

SWF, images

```auto
function loadImage{
   var assetsURL:String = "muFile.gif";//or swf
   var assetsLoader:Loader = new Loader();
   var assetsRequest:URLRequest = new URLRequest(assetsURL);
   myListeners(assetsLoader.contentLoaderInfo)
   assetsLoader.load(assetsRequest);
}

```

Function Events

```auto
function handleProgress( event:ProgressEvent ):void {
    var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
    percentLoaded = Math.round(percentLoaded * 100);
}

function ioErrorHandler(event:IOErrorEvent):void {
	trace("ioErrorHandler: " + event);
}

function handleComplete( event:Event ):void {
   if (event.currentTarget is URLLoader){
      var loader:URLLoader = URLLoader(event.target);
      myFunction (loader.data)// process the data
   }
   if (event.currentTarget is LoaderInfo){
      var loadedContent:Loader = Loader(event.target.loader);
      myFunction (loadedContent)//process the content
   }
}

```

I will appreciate your feedback
