I’m baffled at why I can’t get these event listeners to work properly - here’s the error message:
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):
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
configureListeners(Interface._pageHolder.contentLoaderInfo);
there are no problems, but I need the event listeners to trigger animation.