Flex中State和ViewStack的区别

最近在一个Flex遗留系统上工作,Flex部分承担的主要是用户注册的业务。

 

用户注册需要多个步骤,比如填写完基本信息,通过验证之后,来到联系信息填写表单,等等。步骤之间的切换通过改变当前页面的state来实现:State控制不同控件的显示、掩藏等。

 

直觉不应该这么实现,今天看了《Flex 3权威指南》 之后,终于找到了答案:ViewStack才是这种场景的正确实现方式。

 

State和ViewStack虽然都可以用来实现上述的场景,但使用state方式的问题在于它不是为这种场景设计的实现方式。所以,在实现过程中可能会非常痛苦。

 

以下是State和ViewStack的一些区别:

 

 

State ViewStack
使用场景

一个View的不同状态。比如一个页面在普通用户登录

时只能看到概要信息,而当管理用户登录时可以看到

详细信息,这是同一个view的两种不同状态。

用来控制差异很大的View之间的跳转和变迁。比如一个用户注册过程中的各个步骤。

技术实现

1. 需要一次初始化所有的components。

2. 基本上背后是一个MXML,内部component的较小变化。

3. 同上,基本对应一个数据。

1. 可以使用creationPolicy参数来控制延迟初始化。比如可以让stack中的每个view

在导航到它时才初始化。

2. 多个MXML之间的转移。

3. 同上,对应多个数据。

(当然,多个MXML和多个数据都不是必须的)

 

 

-- EOF --

 

PS: 我还是Flex菜鸟一个,理解不当之处请朋友们指正。

你可能感兴趣的:(Flex)