flex 强制viewStack更新

 viewStack 第一次创建后,后面viewStack切换时,viewStack的子组件没有重新初始化,如果要强制重新初始化,必须先从viewStack移除改组件,然后重新加入到viewStack.

<mx:ViewStack id="viewStack"  creationPolicy="auto"  width="100%" height="100%"
						  change="viewStack_changeHandler(event)" >
				<s:NavigatorContent id="MAINFORM" width="100%" height="100%" >
					<view:MainForm id="showForm"  width="100%" height="100%"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="USERSET" width="100%" height="100%">
					<view:UserSetForm id="userSetForm" width="100%" height="100%"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="SURBETSET" width="100%" height="100%">
					<view:SurebetSetForm id="surbetSetForm" width="100%" height="100%"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="MAKERSSET" width="100%" height="100%">
					<view:MakersSetForm id="makersSetForm" width="100%" height="100%"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="REPORT" width="100%" height="100%">
					 <view:ReportForm id="reportForm" width="100%" height="100%"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="calcContent" width="100%" height="100%">
					 <view:CalcForm id="calcForm"/>
				</s:NavigatorContent>
				<s:NavigatorContent id="viewMakersDetailContent" width="100%" height="100%">
					<component:ViewMakersDetail id="viewMakerDetailForm"/>
				</s:NavigatorContent>
			</mx:ViewStack>

 

//强制viewStack更新
			protected function viewStack_changeHandler(ie:IndexChangedEvent):void
			{
				// TODO Auto-generated method stub
				var obj:NavigatorContent = ie.relatedObject as NavigatorContent;
				 if(obj.name=='calcContent'){
					 if(calcForm==null)
						 calcForm = new CalcForm();
					 calcContent.addElement(calcForm);
				 }else{
					 calcContent.removeElement(calcForm);
					 calcForm = null;
				 }
				  
			}

  不知道大家有米有其他更好的方式。。。。。。。。。。。 flex 采用Hero SDK。。。。

你可能感兴趣的:(IE,Flex)