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 flexcoders@yahoogroups.com, "Alex Harui" <[EMAIL PROTECTED]> wrote: > > Local swfs can't get to remote modules. Either the whole thing has to > be local or remote. > > > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of innovativecode > Sent: Wednesday, January 30, 2008 9:13 AM > To: flexcoders@yahoogroups.com > 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> > <![CDATA[ > // in my first iteration of this file, i would just try > modLoader.url = objModuleInfo.swf; > //where objModuleInfo is an object containing a property, swf, that > //is a string containing the path to my module > //the module SWF was in the same directory as the host.swf initially, > //then i moved it into my webserver > > Here's the module: > <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> " > height="164" backgroundColor="#0000ff" width="189" > layout="absolute"> > <mx:Panel width="169" height="99" layout="absolute" > title="Module " x="10" y="24"> > <mx:Label x="10" y="31" text="View SWF" > color="#400040" fontWeight="bold"/> > </mx:Panel> > > </mx:Module> > > This started as an mx:Application but I switched it to a mx:Module > per the latest Flex Modules docs recommendation how to create a > runnable/buildable module SWF. > > Any thoughts would be GREATLY appreciated. > > Thanks! >