1

I'm using Flex Builder 3 to build what will be a fairly large project. I'm suffering from modules stepping on each other and a conflict between application/module. My structure looks something like the following:

Main Application |--Application 2 |--Application 3 |--Application 3

(Application 2 is a child of the main application, while Applications 2 and 3 are siblings, children of Application 2)

In reality, it's more complicated than that, but this is where problems start. In the end, I could have the tree four or possibly five levels deep... If it can be made to work. The main application file consists of little more than a canvas and a series of buttons. The second application contains a vertical tab navigator with canvases as containers, a list and a tree view within two of the tabs. Application 3 is very complicated, as is an event calendar in Application 4. As long as no interaction takes place, everything loads and appears fine. When looking at Modules 2 and 3, both have ComboBoxes. The first to be accessed works correctly, but the second throws errors, what I take to be sandbox violations. I converted Applications 2, 3 and 4 to Modules and used ModuleLoader to bring them in and to specify ApplicationDomain=currentDomain. Now, the calendar functions in the last (now module) fails to display at all. I can trace values and throw up Alert boxes so I know that it's at least loading, but nothing displays. As a test, I stripped that module down to contain nothing at all but a Label that says "Test" and it displays fine, but as soon as I put it inside a Canvas component, nothing displays. But if I convert that module back to an Application and load it using an SWFLoader, it displays fine, but I'm certain that as soon as I try to bring in another application parallel to it, I'm going to be back where I Started. I can easily use so.data and LocalConnections to pass information back and forth, but how do I load an SWF in as an Application and specify an application domain? It would be nice to have everything exist as currentDomain and play nice.

casperOne
  • 73,706
  • 19
  • 184
  • 253
Charles Shoults
  • 151
  • 3
  • 13

1 Answers1

2

I'm not sure I really understand your blurb, but if your title is accurate, you may find the sample on this page to be helpful.

Metal
  • 883
  • 5
  • 6
  • This might do it, however when I try to use SecurityDomain, it gives me a sandbox violation. If I remove that line, it seems to work, so far. I'll need to build up a few more "Applications" and see how they behave. I think the LoaderContext is what I needed. private function setMemberPanel():void { var context:LoaderContext = new LoaderContext(); // context.securityDomain = SecurityDomain.currentDomain; context.applicationDomain = new ApplicationDomain(); memberContext.loaderContext = context; memberContext.source = "btl_memberTools.swf"; } – Charles Shoults Jan 26 '11 at 17:10