Hi Alex,

when I call the CairngormEvent
the first time just like this:

   new LoadTestEvent().dispatch();

the moduleReadyHandler - method
will not be called. But when I call the
LoadTestEvent a second time, once
again, just like this:

   new LoadTestEvent().dispatch()

the moduleReadyHandler - method
will be successfully called.

I believe that the two EventListeners:

   ModuleEvent.READY and
   ModuleEvent.ERROR

are not registered correctly in the first place.
But I don't understand why!? Maybe there is
an issue related to the FrontController?

Thank you,
masu


On 7/12/08, Alex Harui <[EMAIL PROTECTED]> wrote:
>
> I'm not sure I see the event logic you're talking about.
>
>
> ------------------------------
>
> *From:* [email protected] [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Sebastian Mohr
> *Sent:* Saturday, July 12, 2008 9:22 AM
> *To:* [email protected]
> *Subject:* Re: [flexcoders] Module hell... Flex 3
>
>
>
> Hi there,
>
> I have the same problem as *dbronk *mentioned
> (see below) in conjunction with Cairngorm 2.2.1.
>
> I always have to dispatch the LoadTestEvent
> twice to make the LoadTestCommand calling
> the moduleReadyHandler-method. here is the
> code:
>
> package com.test
> {
>    import com.adobe.cairngorm.commands.ICommand;
>    import com.adobe.cairngorm.control.CairngormEvent;
>
>    import flash.system.ApplicationDomain;
>
>    import mx.events.ModuleEvent;
>    import mx.modules.IModuleInfo;
>    import mx.modules.ModuleManager;
>
>    public class LoadTestCommand implements ICommand
>    {
>       private var moduleInfo:IModuleInfo;
>
>       public function LoadTestCommand()
>       {
>          moduleInfo = ModuleManager.getModule('TestModule.swf');
>          moduleInfo.addEventListener(ModuleEvent.READY,
> moduleReadyHandler);
>          moduleInfo.addEventListener(ModuleEvent.ERROR,
> moduleErrorHandler);
>       }
>
>       public function execute(event:CairngormEvent):void
>       {
>          moduleInfo.load(ApplicationDomain.currentDomain);
>       }
>
>       public function moduleReadyHandler(e:ModuleEvent) : void
>       {
>          trace('SUCCESS');
>       }
>
>       public function moduleErrorHandler(e:ModuleEvent) : void
>       {
>          trace('ERROR');
>       }
>    }
> }
>
> Is there a solution to dispatch the event only once
> to make the Command loading the module?
>
> Thank you,
> masu
>
>
> On 1/28/08, *dbronk* <[EMAIL PROTECTED]> wrote:
>
> I'm trying to get something very basic to work with modules. I have
> my app and two swf modules (Form1.swf and Form2.swf). Each test
> module simply has a couple TextInput fields. I have also extended
> Module so I can follow what is going on and I will be adding custom
> code later. MyModule extends Module has:
>
> public function MyModule() {
> super();
> trace("Module constructor");
> addEventListener(FlexEvent.INITIALIZE, onInitialize);
> }
>
> protected function onInitialize(event:Event) : void {
> trace("Module.onInit: " + this.toString());
> dispatchEvent(new BaseEvent("moduleLoaded", this, true, true));
> }
>
> Very basic. I want to be notified when the Module is initialized.
>
> When I have the following code inline to a button click which will
> load the module it works fine
>
> var moduleLoader : ModuleLoader = new ModuleLoader();
> moduleLoader.id = moduleName;
> moduleLoader.url = moduleName;
> moduleLoader.loadModule();
> moduleLoader.addEventListener("moduleLoaded", onModuleLoaded);
> moduleStackChild = moduleLoader;
> moduleStack.addChild(moduleStackChild);
> moduleMap.put(moduleName, moduleStackChild);
>
> My onModuleLoaded function gets called.
>
> Now for the issue. If I take this code and place it into a common
> object it no longer works THE FIRST TIME. I have two buttons, one to
> load Form1.swf and the other to load Form2.swf. When this code to
> load the module is in a separate class, it doesn't matter if I click
> button 1 or 2 first. It simply will not work on the first click.
> Second click and beyond work fine. Also, in debug mode, works great
> every time. What happens is that the last thing that runs is the
> loadModule() command. The constructor on MyModule never executes on
> the first execution. Future executions work fine.
>
> I'm hoping I explained this good enough as it is very strange. But I
> definitely want to have this function in my util classes and not have
> to duplicate the code all over the place.
>
> Suggestions?
>
> Thanks,
> Dale
>
>
> 
>

Reply via email to