Hi I have sceanerio where loading module in view stack and maintain its state. I facing problem durning selectedChildren in view stack. Please find snippet of code
*Shell.mxml* * * <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" width="100%" height="100%" minWidth="1000" minHeight="600"> <mx:Script> <![CDATA[ import com.module.TestClass; private var loadedApps : Dictionary = new Dictionary(); public function showTab( url : String ) : void { var tabView : ModuleContainer = loadedApps[url] as ModuleContainer; if ( tabView != null ) { appsViewStack.selectedChild = tabView; } else { var mcView : ModuleContainer = new ModuleContainer(url); var mcDO : DisplayObject = mcView as DisplayObject; appsViewStack.addChild(mcDO); appsViewStack.selectedChild = mcView; loadedApps[url] = mcView; } } ]]> </mx:Script> <mx:Canvas id="applicationBody" x="0" y="0" width="100%" height="100%"> <mx:HBox width="100%" height="30" x="3" y="3"> <mx:Button label="Cricket" click="showTab('cricket.swf')"/> <mx:Button label="Football" click="showTab('football.swf')"/> <mx:Button label="Hockey" click="showTab('hockey.swf')"/> <mx:Button label="Tennis" click="showTab('tennis.swf')"/> </mx:HBox> <mx:ViewStack id="appsViewStack" width="100%" height="100%" backgroundColor="#DBDBDB" y="31" x="0"> </mx:ViewStack> </mx:Canvas> </mx:Application> *ModuleContainer.as* * * package test { import flash.events.Event; import flash.system.ApplicationDomain; import mx.containers.Canvas; import mx.controls.Alert; import mx.controls.Label; import mx.core.UIComponent; import mx.events.ModuleEvent; import mx.managers.CursorManager; import mx.modules.IModuleInfo; import mx.modules.ModuleManager; public class ModuleContainer extends Canvas { private var info:IModuleInfo = null; private var module:UIComponent = null; private var moduleUrl : String = null; public function ModuleContainer(url : String) { super(); this.moduleUrl = url; this.loadModule(); } public function loadModule( ) : void { info = ModuleManager.getModule(this.moduleUrl); if (info != null) { info.addEventListener(ModuleEvent.READY, onReady); info.addEventListener(ModuleEvent.ERROR, onError); info.load(ApplicationDomain.currentDomain); } } public function onReady( event:ModuleEvent ) : void { info.removeEventListener(ModuleEvent.READY, onReady); info.removeEventListener(ModuleEvent.ERROR, onError); module = info.factory.create() as UIComponent; if ( module != null ) { /* var t:Label = new Label(); t.text = moduleUrl; this.addChild(t); */ *Uncomment this you can see label value change in stage durning module change* module.x = 0; module.y = 50; module.percentWidth = 100; module.percentHeight = 100; this.addChild(module); } } public function onError(event:Event) : void { // cleanup and display an error alert info.removeEventListener(ModuleEvent.READY, onReady); info.removeEventListener(ModuleEvent.ERROR, onError); info = null; Alert.show(event.toString(), "Error Loading Module"); CursorManager.removeBusyCursor(); } } } Thanks Deepan -- You received this message because you are subscribed to the Google Groups "Flex India Community" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/flex_india?hl=en.

