URLLoader loads the SWF as data and does not parse the SWF for its classes.
Sounds like you're doing everything right, but I would verify the SWF in the SWC to make sure it is valid. ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Paul Spitzer Sent: Friday, March 28, 2008 2:53 PM To: flexcoders@yahoogroups.com Subject: [flexcoders] Runtime Class Loading Hi All, Hoping someone can help me out here... I'm near the point of loosing my mind. I'm trying to do a simple load of a library SWF in order to use the classes within. Unfortunately it's not working. What I did was create a new library project, stuffed in a couple of classes, extracted the swf from the swc, and then created an ActionScript project in which I load the SWF. When I use the Loader object to load the SWF the complete event never fires. I see progress events and I see the bytesLoaded matching the bytesTotal but no complete event. When I use URLLoader the SWF loads up no problem but I can't seem to access any of the classes in the library SWF. Using getDefinitionByName throws an error. If instead of a library project I create and load an ActionScript project SWF it all works as expected. But only when I use a Loader to load the SWF. If I try to use URLoader it doesn't work. Again, getDefinitionByName throws an error. I could create the library as an ActionScript project but I'd really prefer not to have to, feels a little dirty. I was looking at the way the Flex framework works with RSLs and it appears it does exactly what I'm trying to do. That is, it loads a library swf making the classes available at runtime. I tried duplicating the code in mx.preloaders.Preloader but to no avail. I tested a Flex project with an RSL and after adding some debug code I found the complete event in the Preloader (RSLNode) fires without any issues. I don't understand what I'm doing wrong, or not doing, or what the framework is doing that I'm not. Here's my code, about as simple as it gets... public function LibLoader() { var loader: Loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, handleProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ER ROR, handleLoadError); var loaderContext: LoaderContext = new LoaderContext(); loaderContext.applicationDomain = ApplicationDomain.currentDomain; loader.load(new URLRequest("TestLib.swf"), loaderContext); } private function handleProgress(event: ProgressEvent):void { trace("progress"); } private function handleLoadComplete(event: Event):void { trace("complete"); } private function handleLoadError(event: ErrorEvent):void { trace("error"); } Any insight? Many thanks, Paul