# Loader Event Listeners Problem

**URL:** <https://forum.kirupa.com/t/loader-event-listeners-problem/296720>\
**Category:** flash\
**Created:** [September 18, 2009, 9:10pm UTC](https://forum.kirupa.com/t/loader-event-listeners-problem/296720 "2009-09-18T21:10:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pherank](https://avatars.discourse-cdn.com/v4/letter/p/4af34b/32.png) [@Pherank](https://forum.kirupa.com/u/Pherank)\
**Post date:** [September 18, 2009, 9:10pm UTC](https://forum.kirupa.com/t/loader-event-listeners-problem/296720/1 "2009-09-18T21:10:10Z")

</div>

I’m baffled at why I can’t get these event listeners to work properly - here’s the error message:

```auto
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::Loader/unload()

```

Here’s the basic code (I removed some unrelated portions):

```auto

        public function loadPage(pageArrID:int):void {

            if (Interface._pageHolder != null) {

                Interface._pageHolder.unload();
                Interface._ui.removeChild(Interface._pageHolder);

                configureListeners(Interface._pageHolder.contentLoaderInfo); //Not working properly
                Interface._pageHolder.load(new URLRequest(externalSWF));
                Interface._pageHolder.name = "pageHolder";// Give this object instance a name

            }
            if (Interface._ui != null && Interface._pageHolder != null) {
                //Add movie container to the Display List
                Interface._ui.addChild(Interface._pageHolder);
            } else {
                // Fail Safe: loads "mainmenu.html"
                GetURL();
            }
        }
        private function configureListeners(dispatcher:IEventDispatcher):void {
            // Register for events
            //dispatcher.addEventListener(ProgressEvent.PROGRESS, progressListener, false, 0, true);
            dispatcher.addEventListener(Event.COMPLETE, completeListener, false, 0, true);
            dispatcher.addEventListener(Event.INIT, initListener, false, 0, true);
            //dispatcher.addEventListener(Event.UNLOAD, unLoadListener, false, 0, true);

        }
        // Listener invoked when the asset has been fully loaded
        private function initListener(event:Event):void {
            Interface._pageHolder.content.alpha = 0;// Prepare for TweenLite animation
            addChild(Interface._pageHolder.content);// Add loaded asset to display list
        }
        private function completeListener(event:Event):void {
            //Interface._pageHolder.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener);
            Interface._pageHolder.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeListener);
            Interface._pageHolder.contentLoaderInfo.removeEventListener(Event.INIT, initListener);
            //Interface._pageHolder.contentLoaderInfo.removeEventListener(Event.UNLOAD, unLoadListener);
            TweenLite.to(Interface._pageHolder.content, 0.5, {alpha:1, ease:Quint.easeIn});
        }

```

If I comment out the line

```auto
configureListeners(Interface._pageHolder.contentLoaderInfo);

```

there are no problems, but I need the event listeners to trigger animation.
