Good design involves modularity and abstraction. Your modules should be thought of as abstractions otherwise they probably aren't good modules. In cases where you need to know more, you can define an interface that allows you to query a modules for what is in it.
More commonly, folks have a central data model in the main app, and the view modules pull data from the model. That helps the abstraction because then the main app doesn't really need to know what is in the module. ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Parkash Sent: Monday, June 23, 2008 1:26 AM To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Problem While Downcasting Flex Modules Alex thanks for your reply, basically my application has total 10 screens and 6 out 10 screens will be used in other flex applcations , so what i have decided is to make all 10 screens as module and 10 presenter classes for each module. (Do you think it is a good approach?). Now as you said use Interface, their is no problem in using interface, but my presenter class needs to know the actual Module name so that i can access the individual components of modules in presenter class. one more thing my Modules are passive view . can you help me how to solve this problem. becuse my presenter classes are totaly dependente view(Module).. ----- Original Message ----- From: Alex Harui <mailto:[EMAIL PROTECTED]> To: flexcoders@yahoogroups.com <mailto:flexcoders@yahoogroups.com> Sent: Sunday, June 22, 2008 3:12 AM Subject: RE: [flexcoders] Problem While Downcasting Flex Modules Your example doesn't make sense because if you have the types FlexModule1 and FlexModule2 in the main app, those classes are linked into the main app and you've defeated the whole point of modules. You should be using interfaces instead. However, by default, a module will be compiled without a package (actually "package {"} so it won't be of type modules.FlexModule1, it will just be FlexModule1 ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Saturday, June 21, 2008 2:54 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Problem While Downcasting Flex Modules HI everyone, I am facing a problem while down casting the flex module. I have created two flex modules called FlexModule1.mxml and FlexModule2.mxml. These both modules contain the same code. I have placed FlexModule1.mxml under modules folder(modules/FlexModule1.mxml) and FlexModule2.mxlm @ application root. Here is code for FlexModul1.mxlml (and FlexModule2.mxml as both modules have identical code) <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> " width="400" height="300"> <mx:Script> <![CDATA[ public function Foo( pstr:String ):String { trace( "In Method Foo" ); return "Foo" + pstr ; } ]]> </mx:Script> <mx:Panel width="100%" height="100%"> <mx:Label id="MY_LABEL" text="I AM MODULE-1" fontSize="20" color="green"/> </mx:Panel> </mx:Module> And here is Main class code. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> " layout="vertical" creationComplete="{loadModule()}"> <mx:Script> <![CDATA[ import mx.modules.ModuleManager; import mx.modules.IModuleInfo; import modules.FlexModule1; import mx.events.FlexEvent; import mx.events.ModuleEvent; import mx.modules.ModuleLoader; public var moduleLoader:ModuleLoader; public var moduleInfo:IModuleInfo; public function loadModule( ):void { moduleLoader = new ModuleLoader(); moduleLoader.addEventListener( ModuleEvent.READY , moduleReadyEventHandler ); //moduleLoader.url = "FlexModule2.swf"; //This is fine module loaded moduleLoader.url = "modules\\FlexModule1.swf"; //this fine too moduleLoader.loadModule(); } public function moduleReadyEventHandler( evt:ModuleEvent ):void { trace( "Module Ready Event Handler" ); this.addChild( moduleLoader ); //(moduleLoader.child as FlexModule2).Foo( '' ) ; // this if fine method Foo() called (moduleLoader.child as FlexModule1).Foo( '' ) ; // Null pointer Exception } ]]> </mx:Script> </mx:Application> Both modules are loading without any problem but the error occurs when I try to downcast FlexModule1.mxml. There is no down casting problem with FLexModule2.mxlm. I think the problem is with different folder i have used for FlexModule1.mxml , may b i am wrong. Please let me know where is the problem.