Moving children out of a loader object has a pitfall
A common practice to utilize content from a Loader is to cast the loader's content property to a DisplayObject (or anything that extends it) and then addChild that object to wherever you want to use the loaded content in the display list outside the context of the loader itself, which then allows you to reuse that loader object, shaving some overhead and assisting in garbage collection if you manage those children properly. The problem arises when you reuse that loader object. You may be inclined to call the loader.unload() method (which will reset the properties of the loader to a null state for next load, clearing the content property in the process). Normally not an issue
since you've already referenced the child content for use elswehere, so it lives on despite the loader resetting. The problem is that the unload method dispatches an Event.UNLOAD to that child even though you added a reference to it elsewhere (its still a child of the loader so it receives events). This means any content in that SWF that listens for the event will think it has been unloaded and perform any associated actions - not good, especially when designing a framework for use by other developers. To make matters worse, the Loader class overrides removeChild (among others) blocking the ability to bypass this Event.UNLOAD dispatch by removing the object from its parent by hand - you simply cant do it. A custom loader class may be in order to pull this one off.


