加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex的视图状态。

发布时间:2020-12-15 01:39:08 所属栏目:百科 来源:网络整理
导读:????? 在建立了Flex应用后,在MYECLIPSE中可以看到一个名叫states的视图,这个视图可以实现页面间的切换(个人感觉是通过控制层的可见性以及添加新层来完成某状态的重绘),states配置如下: ??????mx:states ??mx:State name="cartView" ???mx:SetProperty

????? 在建立了Flex应用后,在MYECLIPSE中可以看到一个名叫states的视图,这个视图可以实现页面间的切换(个人感觉是通过控制层的可见性以及添加新层来完成某状态的重绘),states配置如下:

??????<mx:states>
??<mx:State name="cartView">
???<mx:SetProperty target="{products}" name="width" value="0"/>
???<mx:SetProperty target="{products}" name="height" value="0"/>
???<mx:SetProperty target="{cartBox}" name="width" value="100%"/>
???<mx:AddChild relativeTo="{cartBox}" position="lastChild">
????<mx:DataGrid id="dgCart" width="100%">
?????<mx:columns>
??????<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
??????<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
??????<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
?????</mx:columns>
????</mx:DataGrid>
???</mx:AddChild>
???<mx:RemoveChild target="{linkbutton1}"/>
???<mx:AddChild relativeTo="{cartBox}" position="lastChild">
????<mx:LinkButton label="Continue Shopping" click="this.currentState=''"/>
???</mx:AddChild>??
??</mx:State>
?</mx:states>

?

简要分析下这段代码:?<mx:State name="cartView">表示创建一个新的名为cartView的视图,

?<mx:SetProperty target="{products}" name="width" value="0"/>
???<mx:SetProperty target="{products}" name="height" value="0"/>
这2行把products容器的宽和高设为0,这样products容器被隐藏了起来不可见。

?<mx:SetProperty target="{cartBox}" name="width" value="100%"/>
这行让cartBox的横向填充满整个容器(高度不变),其实就是填充满刚才被隐藏了的products区域。

<mx:AddChild relativeTo="{cartBox}" position="lastChild">
????<mx:DataGrid id="dgCart" width="100%">
?????<mx:columns>
??????<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
??????<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
??????<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
?????</mx:columns>
????</mx:DataGrid>
???</mx:AddChild>
这段代码是在cartBox中添加一个DataGrid 控件。

?

?<mx:RemoveChild target="{linkbutton1}"/>
这行代码移除名为linkbutton1的控件

?

?<mx:AddChild relativeTo="{cartBox}" position="lastChild">
????<mx:LinkButton label="Continue Shopping" click="this.currentState=''"/>
???</mx:AddChild>??
这段代码增加了一个返回base状态的链接。

?

看完了这个例子,我思考了如下几个问题,我们可以把某些页面存为一种状态,当我们需要的时候只要调用这个状态就可以重绘整个页面,举个简单的例子,当我们查询服务器后生成了一个页面显示学生列表,然后我们又点了很多别的页面,然后想重新看看学生列表,按以往JSP的方法,我们需要重新访问服务器请求学生列表页面,而在FLEX中可以用状态解决这个问题,我们可以把学生列表通过以上的编码方式存为一种状态,当我们需要重新查看学生列表的时候,只需要调用对应的状态就可以了,无须再请求服务器。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读