ImageLoader bug

Hello :). I wrote one class which purpose is to load image into to certain MovieClip. The problem is that it is not working very well.

package src.load {
    import flash.display.MovieClip;
    import flash.display.Loader;
    import flash.display.Bitmap;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.ProgressEvent;
    import flash.net.URLRequest;

    public class ImageLoader extends MovieClip {
        
        private var _holder:MovieClip;
        private var _holderWidth:Number;
        private var _holderHeight:Number;

        public function ImageLoader() {
        }
        public function loadImage(clip:String, holder:MovieClip, holderWidth:Number, holderHeight:Number):void {
            trace("PASSED CLIP");
            trace(clip);
            removeChildren(holder);

            var imageLoader:Loader = new Loader();
            var imageURL:String = clip;
            var imageURLReq:URLRequest = new URLRequest(imageURL);
            
            trace("loading "+imageURL);

            imageLoader.load(imageURLReq);
            imageLoader.contentLoaderInfo.addEventListener(Event.INIT, imageLoaded);
            imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageProgress);
            
            _holder = holder;
            _holderWidth = holderWidth;
            _holderHeight = holderHeight;
        }

        private function imageProgress(evt:ProgressEvent):void {
            trace(Math.round((evt.bytesLoaded / evt.bytesTotal)*100));
        }

        private function imageLoaded(evt:Event):void {
            _holder.addChild(evt.target.content);
            _holder.width = _holderWidth;
            _holder.height = _holderHeight;
        }

        private function removeChildren(container:MovieClip):void {
            while (container.numChildren) {
                container.removeChildAt(0);
            }
        }
    }
}

This is the class.

How am I using it?
I listen for MouseDown and then MouseMove and I draw rectangle. After MouseUp I finish the rectangle and save it in MovieClip, add the MovieClip to the stage and then add the MovieClip to an Array. In this array I have other rectangles created the way described above. I have one variable called

var selectedDrawing:*; selectedDrawing = drawingsList[id];
which holds the current item of the array being viewed. The problem appears here:

_imageLoader.loadImage(imgData[1], selectedDrawing, selectedDrawing.width, selectedDrawing.height);

The image is not loaded in the selectedDrawing it is not centered to it. What should I do just to load random image to Rectangle created with this method:

graphics.beginFill();
graphics.drawRect(...);

If the image is larger than the container then I should reduce its width and height to the selectedDrawing. But the code above seems not to be working well.

Where is the problem? I am sure you have come around such things. Please give me a hint how to solve this puzzle :slight_smile:

Thank you in advance.