Hi Alex, Thanks for responding. All of my SWFs are local. I output my host swf to the default \bin directory, I then place my module.swf in that same directory. And when I specify the url to load within the host SWF, I use just the name of the module swf:
modLoader.url = "module.swf"; Where modLoader is an instance of mx:ModuleLoader within the host.swf mxml application. Any thoughts? Is the common practice to build and debug modules to place them in another directory or to specify a full local filesystem path to the module.swf? --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > Local swfs can't get to remote modules. Either the whole thing has to > be local or remote. > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of innovativecode > Sent: Wednesday, January 30, 2008 9:13 AM > To: [email protected] > Subject: [flexcoders] Problems using Flex modules > > > > I'm building my first Flex modules-based app with my own MVC > implementation. I have my main.mxml instantiating my controller just > fine and the controller building a map of the modules (flex modules) > that it can load dynamically. > > However, I am running into a wall when the most basic attempt to load > a module fails. I've tried more advanced methods and stepped through > the ModuleLoader, ModuleInfo.load classes and I get anything from "a > local SWF can't use the securityDomain property of a loaderContext > object" to the "SWF is not a loadable module" errors based on the > changes I've made to try and address the problem of not being able to > load and display the most basic module within a host. > > Can someone give me the basics on how to create a local build and > test environment that will address the security/sandbox restrictions > of local SWFs loading (my MVC host app) other local SWFs (my module > SWFs). Here's my setup: > > - have a basic flex project that outputs a build in the \bin > directory. When I attempt to load a module, also in that same \bin > directory, I can see the loading progress event handler being called > but when the cast to loader.content as IFlexFactoryBlah runs, the > loaded module isn't a "real" module per "SWF is not loadable > module". Although, my module SWF is a <mx:Module> based SWF that > contains only one ui element, a label. > > - then I thought maybe it wouldn't work b/c I wasn't loading the > module SWF over HTTP, so I put my view.swf module in the root > directory of my localhost-based HTTP server. Then I ran into the "a > local SWF can't set the securityDomain property in LoaderContect" > error. I tried to manually load the module using the following and > placing a crossdomain.xml into the root of my server with access set > to all allowed via "*": > > import mx.events.ModuleEvent; > import mx.modules.ModuleManager; > import mx.modules.IModuleInfo; > var info:IModuleInfo; > Security.allowDomain("localhost"); > Security.loadPolicyFile("http://localhost/crossdomain.xml > <http://localhost/crossdomain.xml> "); > var request:URLRequest = new URLRequest > ("http://localhost/crossdomain.xml <http://localhost/crossdomain.xml> > "); > var loader:URLLoader = new URLLoader(); > loader.load(request); > > info = ModuleManager.getModule(view.swf); > info.addEventListener(ModuleEvent.READY, onModuleReady); > info.load > (ApplicationDomain.currentDomain,securityDomain.currentDomain); > > This produced the "You can't use securityDomain property of > LoaderContext from a local SWF" type error. > > Anyway, where do you normally store module SWFs and the host app that > uses and loads them when you're in dev mode and trying to debug on > your local box??? > > Here's some of the code: > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> " > layout="absolute" > creationComplete="onInit();" width="532" height="428"> > <mx:Button x="10" y="10" id="btn" label="Load Flex SWF" /> > <mx:Panel x="10" y="78" width="341" height="281" > layout="absolute" title="Loaded Module"> > <mx:ModuleLoader id="modLoader" width="100%" > height="100%" x="0" y="0"> > </mx:ModuleLoader> > </mx:Panel> > <mx:Script> > <
