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!
>


Reply via email to