Actionscript preloader in flash develop

I have been trying to create a preloader for my flash app in pure action script. There is a feature in Flash Develop to create a project ‘actionsript 3 with preloader’.
Here is Preloader class:


package 
{
    import flash.display.Bitmap;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.utils.getDefinitionByName;
    import flash.display.StageScaleMode;
    
    /**
     * ...
     * @author sasa
     */
    public class Preloader extends MovieClip 
    {
        
        [Embed(source = '../slike/loading.png')]
        private var Slika:Class;
        private var slika:Bitmap;
        private var bar:Shape;
        
        public function Preloader() 
        {
            stage.scaleMode = StageScaleMode.NO_SCALE;
            
            slika = new Slika();
            slika.alpha = 0.8;
            
            addEventListener(Event.ENTER_FRAME, checkFrame);
            loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
            
            // show loader
            addChild(slika);
            slika.y = 250;
            slika.x = 250 - slika.width / 2;
            bar = new Shape();
            
            bar.graphics.lineStyle(2, 0xFFFFFF, .75);
            bar.graphics.drawRect(0, 0, 250, 25);
            bar.y = 290;
            bar.x = 250 - bar.width / 2;
            bar.alpha = 0.3;
            addChild(bar);
        }
        
        private function progress(e:ProgressEvent):void 
        {
            trace('bio');
            // update loader
            bar.graphics.clear();
            
            
            bar.graphics.lineStyle(2, 0xFFFFFF, .75);
            bar.graphics.drawRect(0, 0, 250, 25);
            
            bar.graphics.beginFill(0xFFFFFF, 1);
            //bar.y += 2;
            bar.graphics.drawRect(0, 0, (e.bytesLoaded / e.bytesTotal) * 250, 25);
            /*
            var i:int;
            for (i = 0; i < 500; i++) {
                trace(i);
            }*/
        }
        
        private function checkFrame(e:Event):void 
        {
            if (currentFrame == totalFrames) 
            {
                removeEventListener(Event.ENTER_FRAME, checkFrame);
                startup();
            }
        }
        
        private function startup():void 
        {
            /*
            var i:int;
            for (i = 0; i < 4000; i++) {
                trace(i);
            }*/
            // hide loader
            removeChild(slika);
            removeChild(bar);
            slika = null;
            bar = null;
            
            stop();
            loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
            var mainClass:Class = getDefinitionByName("Main") as Class;
            addChild(new mainClass(this));
            //addChild(new Main(this));
        }
    }
}

when i run my app. the progress function is called a few times while the app isn’t visible. and when the loading bar displays it’s always full.
And then i wait for the app to load and it starts after that.
It’s like the progress event isn’t giving me the progress of the rest of application, it’s like it’s giving me the progress of itself, so i can always see the bar only full.
I’ve been searching for a solution whole day. Please help out…