大家好,很高兴来学习flex。今天将探讨一下导航容器viewStack。
viewStack和TabNavigator都是导航容器,两者都有相似之处,明显的不同点在于viewStack在将子容器插入之后,还另外需要提供其他的控件例如LinkBar,LinkButtonBar等等为其提供导航功能。
在每个子容器当中,我们需要给它一个label,以便在导航条里面标识自身。我们先看看一个例子
<mx:LinkBar dataProvider="{myViewStack}"/>
<mx:ViewStack id="myViewStack" width="398" height="296">
<mx:Canvas label="home" width="100%" height="100%" backgroundColor="#322902">
</mx:Canvas>
<mx:Canvas label="product" width="100%" height="100%" backgroundColor="#04FE9D">
</mx:Canvas>
<mx:Canvas label="support" width="100%" height="100%" backgroundColor="#FB0202">
</mx:Canvas>
</mx:ViewStack>
在这个例子里面我们定义了一个viewStack和一个链接条LinkBar为其提供导航功能,其中,LinkBar的数据源设置成为ViewStack的id,这样我们就能够使用ViewStack为我们提供导航了。
另外viewStack还提供了两个方便我们代码式编程的属性以找到子容器,分别是selectedChild和selectedIndex。第一个是通过名称来寻找,第二个是通过索引号来获得。
有一点,大家注意到了没有,有个小技巧,我们在viewStack里面固定了大小,在子容器里面我们使用百分比的形式,这样一来,当不同容器切换的时候,不会因为容器的大小而是ViewStack发生改变导致变形。flex最令我爱着的是它的特效,以往的网页中切换的时候,感觉总是太生硬,在viewStack里面我们还可以通过设置showEffect和hideEffect来改变切换效果。