It has to do with the ApplicationDomain. Unless otherwise specified, a
module lives in its own ApplicationDomain. This way it can have its
own copies of every class. If you load the modules into the same
ApplicationDomain as the main application, the warning should be gone
as well. Its just, in this case the classes are still included in all
of the modules.

Ralf.

On Fri, Oct 17, 2008 at 2:23 PM, Purushottam Yeluripati
<[EMAIL PROTECTED]> wrote:
> Thank you for your response, Ralf. I am going to try that option as well.
> But I am still not clear on why the current setup does not work. I have
> ensured (through explicit package import and variable declaration in MyApp)
> that IAppModule, IModule1 and IModule2 are all referenced within the main
> application.
>
> I have been trying a host of other things such as trying to load all the
> modules into the same domain as the application, but no luck there either :(
>
> ----- Original Message ----
> From: Ralf Bokelberg <[EMAIL PROTECTED]>
> To: flexcoders@yahoogroups.com
> Sent: Friday, October 17, 2008 2:36:19 AM
> Subject: Re: [flexcoders] Module Interfaces Inheritance question
>
> Hi Purush
>
> I think iAppModule needs to go into a library project, which is
> referenced by the modules but marked as external, while it is embedded
> completely in the main application.
>
> Ralf.
>
> On Fri, Oct 17, 2008 at 2:51 AM, purush_y <[EMAIL PROTECTED] com> wrote:
>> Hi,
>> I did a basic search on this topic and read a few posts, but I
>> think my case seems to be a little different here. I have a fairly
>> large application that I am designing to be broken into one main
>> application that loads multiple modules as required.
>>
>> My main application implements an IMyApp interface with one method
>> right now:
>> getModule(modName: String):*
>>
>> All my modules implement a generic IAppModule interface which includes
>> 2 methods:
>> -initModule( ) Called after loading and creation of module
>> -handleEvent( evt:Event) : Called whenever an event such as MenuEvent
>> etc need to be passed to the module.
>>
>> Each of the modules implement a specific interface, for eg. Module1
>> implements IModule1 which extends IAppModule, and Module2 implements
>> IModule2 which also extends IAppModule to expose specific
>> functionality within each of the module.
>>
>> So I have the following package structure and classes with their
>> interfaces:
>> 1) class a.MyApp implements a.mod.common. IMyApp (My main app)
>> 2) interface a.mod.common. IModule1 extends interface
>> a.mod.common. IAppModule
>> 3) interface a.mod.common. IModule2 extends interface
>> a.mod.common. IAppModule
>> 4) class a.mod.mod1.Module1 implements
>> a.mod.common. IModule1 (Module 1 compiles to Module1.swf)
>> 5) class a.mod.mod2.Module 2 implements
>> a.mod.common. IModule2 (Module 2 compiles to Module2.swf)
>>
>> My main application handles the logic of loading all the modules at
>> starting and as required as runtime and any module requiring access to
>> another module asks the main application (through the IMyApp
>> interface) for a handle to the other module.
>>
>> Here is my problem. I am trying to access IModule2 from within
>> Module1. I use IMyApp.getModule( "Module2" ) to get a handle to the
>> second module, but when I try to downcast it to IModule2, it throws me
>> an error saying it encountered error with the type coercion. In the
>> error detail it says that it cannot convert
>> a.mod.mod2.Module2 to a.mod.common. IModule2 which
>> stumps me as the class implements that specific interface.
>>
>> If I include all methods from IModule1 and IModule2 into the base
>> interface IAppModule, remove IModule2 entirely and try to cast the
>> IMyApp.getModule( "Module2" ) to IAppModule, it works fine, but this is
>> not what I was looking for. I will end up with one monolithic
>> IAppModule with every method from every module interface. I am not
>> sure what I am missing here. Is there a problem with interface
>> inheritance and modules? When I run a link report for the modules, I
>> am not sure if I am reading the report right, but I do not see
>> IModule2 interface as part of the definitions within script Module2.
>>
>> Can someone please point me in the right direction for this problem?
>>
>> Thank you for your help,
>> Purush
>
> 

Reply via email to