Thanks Alex, that makes total sense now. BTW, great module presentation at 360Flex. I will go look at your slides again. I really appreciate your time on this one :).
- Mike --- In flexcoders@yahoogroups.com, "Alex Harui" <[EMAIL PROTECTED]> wrote: > > OK, I think I see what is going on. > > > > The app loads module one into a child domain. > > > > MainAppDomain > > ModuleOneAppDomain > > > > The MainAppDomain is where ModuleManager is defined since there is a > ModuleLoader and other Module-related code in main.mxml. > > > > When ModuleOne goes to load ModuleTwo, it is going to use the > ModuleManager code in MainAppDomain which is going to make a child > domain from the main app and not moduleOne. > > > > MainAppDomain > > ModuleOneAppDomain > > ModuleTwoAppDomain > > > > Not: > > MainAppDomain > > ModuleOneAppDomain > > ModuleTwoAppDomain > > > > > > And thus you are in the shared code topology. That's why you need to > add your interfaces to the main app or use the shared code trick from my > blog, or specify the applicationDomain for ModuleOne somehow. > > > > -Alex > > > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of Michael Ritchie > Sent: Thursday, April 05, 2007 11:11 PM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] Re: Module Interface Problems > > > > Alex, > > I made a test case and also managed to get it to work. I realized two > things about the process. Within the main application I load the > module one (red) and module one loads module two (green). > > Module one needs to be cast as a ModuleLoader in the ready event > handler in the Main application in order for module two have a non > null pointer. You also seem to have to have the ModuleLoader in the > main application cast as the same Interface as the one module two > implements. I am not sure why though. > > Changing either one of these parameters will produce the null pointer. > I have a working version of the test case posted, the zip file > contains both module one and module two project zip files as well. > > Example: > > http://thanksmister.com/moduletest/main.html > <http://thanksmister.com/moduletest/main.html> > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > , "Alex Harui" <aharui@> wrote: > > > > Can you post a test case? > > > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of Michael Ritchie > > Sent: Thursday, April 05, 2007 11:00 AM > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: Module Interface Problems > > > > > > > > Alex, > > > > Lol, you said "tickling", haha. Yes, this is within the same domain. > > Everything resides within the bin file of the main application, same > > level. It was loaded just fine and dispatched the progress and ready > > events. When you say "main class", do you meant the Module that is > > loading the second module. I got a little lost ModuleLoader loading > > ModuleLoaders module... makes my head spin. > > > > -Mike > > > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > , "Alex Harui" <aharui@> wrote: > > > > > > If you don't make an instance of the main class in your module which > > > gets around to tickling the module's ModuleLoader, that ModuleLoader > > > won't load its module. Did you see it get loaded and dispatch READY? > > > > > > This is all within a single domain right? > > > > > > ________________________________ > > > > > > From: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > [mailto:flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > ] On > > > Behalf Of Michael Ritchie > > > Sent: Wednesday, April 04, 2007 12:40 PM > > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > > Subject: [flexcoders] Re: Module Interface Problems > > > > > > > > > > > > In my context, a module loading another module using ModuleLoader. > > > The reference to the child of the ModuleLoader is always null. I > have > > > even set up a timer event that keeps checking back to see if the > child > > > is not null. Is there something specific about what I am trying to > > > do that would cause the child to be null? > > > > > > - Mike > > > > > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > , "Alex Harui" <aharui@> wrote: > > > > > > > > ModuleLoader is a convenience container. It loads in the module > via > > > > ModuleManager and when READY, it starts to create the children. If > > you > > > > listen to READY you may see it before moduleloader had a chance to > > see > > > > it and create the child. > > > > > > > > -Alex > > > > > > > > ________________________________ > > > > > > > > From: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > [mailto:flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > ] On > > > > Behalf Of Michael Ritchie > > > > Sent: Tuesday, April 03, 2007 1:04 PM > > > > To: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > > Subject: [flexcoders] Re: Module Interface Problems > > > > > > > > > > > > > > > > I ruled out the timing issue, but your post has some great > > information > > > > how to handle this. I think I have isolated the specific module > > > > loading issue to one factor. I have a module that loads another > > > > module using a <mx:ModuleLoader> and I am trying to access the > > second > > > > ModuleLoader child through the interface. I can't seem get a > > > > reference to the child of the second ModuleLoader, it always > reports > > > > null. I have a successfully loaded a module and talked using the > > > > interface, but if move this within the context of another module, > I > > > > get the null reference. > > > > > > > > --- In flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > , "- FI / Jonas Eliasson +" > > > > <jonas.eliasson@> wrote: > > > > > > > > > > That sounds like a still existing Flash issue if you try to load > a > > > > swf that > > > > > has a shared library attached to it. Then you will get a loaded > > > > callback > > > > > before it's actually loaded. So in Flash you can check on the > > loaded > > > > event > > > > > if current frame == 0. In that case you can't access any > > properties > > > > and no > > > > > code will be executed yet. But you can still write to the > object. > > In > > > > our > > > > > scenario we have attached a callback event method. So when the > swf > > > > is really > > > > > loaded it will check if the callback exist and then execute it. > > > > Which will > > > > > tell the loader that it's ready to be initiated. Something > similar > > > > should be > > > > > easy to implement on the module but not with a check for a frame > > > > number :-) > > > > > . Should be a better solution for this. I don't want to go back > to > > > > old Flash > > > > > hacks hehe. > > > > > > > > > > > > > > > > > > > > //as2 example > > > > > > > > > > private function onLibraryLoaded(libraryClip:MovieClip, > > > > cb:CallBack):Void { > > > > > > > > > > var me:SharedLibraryLoader = getInstance(); > > > > > > > > > > if(libraryClip._currentframe == 0){ > > > > > > > > > > libraryClip.onComplete = new CallBack(me, > > > > me.onLibraryInitiated, > > > > > null, cb); > > > > > > > > > > }else > > > > > > > > > > onLibraryInitiated(libraryClip, cb); > > > > > > > > > > } > > > > > > > > > > _____ > > > > > > > > > > From: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > [mailto:flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > ] On > > > > > Behalf Of Michael Ritchie > > > > > Sent: den 3 april 2007 11:24 > > > > > To: flexcoders@yahoogroups.com > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> > > > <mailto:flexcoders%40yahoogroups.com> > > > > > Subject: [flexcoders] Re: Module Interface Problems > > > > > > > > > > > > > > > > > > > > From my experience there is a definite timing issue when loading > > > > > modules. The ModuleLoader ready event is fired before the Module > > is > > > > > fully loaded and you have the ability to talk to it through a > > common > > > > > interface (hence the error reporting access to a null value). > > > > > > > > > > I would term this one as a "bug" that is not yet documented by > > > Adobe. > > > > > This could be because some modules take longer than expected to > > > load, > > > > > I have no idea, just the observed problem with talking with > > modules > > > > > within the "ready". I also attempted to use an interface to talk > > > with > > > > > a module when the the progress event had reached 100%, but still > > no > > > > > luck. > > > > > > > > > > A possible workaround would be to fire some event from inside > the > > > > > loaded module that tells the outside world that it is indeed > > loaded. > > > > > > > > The other option is to set a timer interval and keep checking if > > the > > > > > module is loaded (meaning not reporting NULL in the ready event > > > > > handler). Unless someone else as a viable solution? Adobe? > Anyone? > > > > > > > > > > - mr > > > > > > > > > > --- In [EMAIL PROTECTED] <mailto:flexcoders%40yahoogroups.com> > > > > ups.com, > > > > > "kristian_wright2002" > > > > > <karnal69@> wrote: > > > > > > > > > > > > *BUMP* > > > > > > > > > > > > Anyone have any ideas? I still haven't found a solution... > > > > > > > > > > > > K. > > > > > > > > > > > > > > > > > > > > >