Network Flash ActionScript

package
{
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    public class Main extends Sprite
    {
        private var loader:URLLoader = new URLLoader(new URLRequest("http://example.com/huge.xml"));
        private var total:Sprite = new Sprite();
        private var loaded:Sprite = new Sprite();
    
        public function Main()
        {
            total.graphics.beginFill(0xff0000, 1);
            total.graphics.drawRect(0, 0, 200, 10);
            total.graphics.endFill();
            addChild(total);
            total.y = 200;
            total.x = 100;
    
            addChild(loaded);
            loaded.y = 200;
            loaded.x = 100;
    
            loader.addEventListener(Event.OPEN, openListener);
            loader.addEventListener(Event.COMPLETE, completeListener);
            loader.addEventListener(ProgressEvent.PROGRESS, progressListener);
        }
    
        private function openListener(event:Event):void
        {
            trace(" opened " + loader.bytesLoaded + " but nothing loaded yet ");
        }
    
        private function completeListener(event:Event):void
        {
            trace(" all done loading " + loader.data + " and here's the xml file we loaded ");
        }
    
        private function progressListener(event:Event):void
        {
            var amount:Number = (loader.bytesLoaded / loader.bytesTotal) * 200;
            loaded.graphics.clear();
            loaded.graphics.beginFill(0x00ff00, 1);
            loaded.graphics.drawRect(0, 0, amount, 10);
            loaded.graphics.endFill();
        }
    }
}