Module Loader and Application 

   

We use module loader to load our modules. In one of my case,
one module loader (mod1) needs to communicate with the other module loader
(mod2), so I am using Interface, ModuleLoadEvent.ready to do it. 

mod2 has a view stack and has 3 children. When module 1
calls module 2 I want to display the 2nd child and not the first. It
works fine when mod2 is called for the first time from mod1 but when you try to
call mod2 for the second time onChild2CreationComplete function is not called, 
hence the mod2 is
empty. Below is the code that I am using. Any input is appreciated 

   

In Mod 1 

   

//this function is called when mod 1 is created 

Private function onCreationComplete():void{ 

      
Application.application.appModuleLoader.removeEventListener("ready",loadClaim); 

      
Application.application.appModuleLoader.addEventListener("ready",loadClaim,false,0,true);
 

} 

   

//When a button is pressed from mod1 to call mod2 

private function callMod2():void{ 

      Application.application.appModuleLoader.applicationDomain
= ApplicationDomain.currentDomain; 

      Application.application.appModuleLoader.url="mod2.swf"; 

   

       

} 

   

private function loadClaim(event:ModuleEvent):void{    

      
Application.application.appModuleLoader.removeEventListener("ready",loadClaim); 

      if(Application.application.appModuleLoader.initialized){           

            var ichild:* =
Application.application.appModuleLoader.child as 
ModuleInterface.IView;                 

            if (ichild != null) {  

                  ichild.setComponent(arg1,
arg2);          } 

      }       

       

}      

   

   

In Mod 2: 

   

//this is the function called from Mod1: 

public function setComponent(arg1:String,arg2:String):void{ 

            if(child2){ 

                  viewstack.selectedChild
= child2; 

                  selectedComponent = select; 

            }else{ 

                  callLater(setComponent, new Array(arg1,arg2)); 

            } 
                      

             

 } 

   

//this function
is called when the child2 creation is completed. 

private function onChild2CreationComplete(event: Event):void{      

            ledgerViews.selectedChild
= claim; 

                         

} 

  
 
         
        
        








        


        
        


      

Reply via email to