After trying to refactor some the views of our application into
modules (and failing miserably) I'm finally frustrated enough to post
a cry for help here and see if someone could kindly offer me a clue.

I have a module (extends ModuleBase) which implements my IViewModule
interface, which is a shared definition between the main application
and the module.

The loading is done like this:

function loadModule() : void {
    var info : IModuleInfo = ModuleManager.getModule("module.swf");
    info.addEventListener(ModuleEvent.READY, moduleReadyHandler);
    info.addEventListener(ModuleEvent.ERROR, moduleErrorHandler);
    info.load();
}

function moduleReadyHandler(event:ModuleEvent) : void {
    var module : IViewModule = 
        event.module.factory.create() as IViewModule;

    if (module == null) 
        throw new Error("I'm null, therefore I ain't");
}

I created a test module with some of it's own unique classes and this
worked fine. Swell, I thought, and commenced refactoring a view of
ours into a module and removed any reference to its main class from
the base application.

Loading the module seems to work fine, but the call to
factory.create() just returns null.

If I add references to the view's main class into the base application
so the class definitions are included in the base application the
create() call returns a proper instance, but that goes against the
whole point of modules.

I've tried playing around with application domains and module
optimizations but I reckon they aren't the problem. I'm probably
missing something vital but I have no clue what it could be.

Which finally leads me to my question:

What are the most common mistakes which would cause this?


Reply via email to