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.

Reply via email to