浏览 4550 次
锁定老帖子 主题:flex 强制viewStack更新
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-12
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。。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-26
最后修改:2011-08-26
拿到VS的子组件id,然后调用creationComplete()试试
|
|
返回顶楼 | |
发表时间:2011-08-28
creationComplete 只在第一次初始化的时候才调用。。。切换时组件其实已经初始化过了,所有会无效的。。。
|
|
返回顶楼 | |
发表时间:2011-10-25
监听切换事件,判断是否为第一次初始化
|
|
返回顶楼 | |