如何在flexbook中动态设置当前页面?

时间:2011-10-08 13:14:49

标签: actionscript-3 flex flex4 flex4.5

我使用的Flexbook包含2个BorderContainer。代码如下所示

<controls:FlexBook id="book" x="20" y="20"
               width="100%" height="100%" horizontalCenter="0" 
               animateCurrentPageIndex="true"
               showCornerTease="true" animatePagesOnTurn="true" 
               activeGrabArea="edge"
               edgeAndCornerSize="20" 
               hardbackPages="false"
               hardbackCovers="false"
               pageShadowStrength="1"
               curveShadowStrength="1"
               pageSlope="0"
               itemSize="page"
               backgroundColor="0xC3D1D9"
               borderThickness="0"
               borderColor="0xC3D1D9"
               cover="{null}"
               backCover="{null}"
               showPageSlopeAtRest="false" 
               cacheAsBitmap="true">

<s:BorderContainer id="page1">


    <mx:ColumnChart x="0" y="35" id="ccMain" height="90%" width="99%"
                    cacheAsBitmap="true"
                    showDataTips="true"  dataTipFunction="{getDataTip}"  type="clustered" backgroundElements="{bge4}">
            <!-- column chart code goes here -->
    </mx:ColumnChart>

</s:BorderContainer>


<s:BorderContainer id="page2" creationComplete="productMainPg2.addElement(lineChart)">
    <mx:Legend dataProvider="{lineChart}" height="21" x="10" width="95%" color="#b1b7f4"/>
</s:BorderContainer>

此代码将page1显示为当前页面。 我想在按钮点击时动态显示BorderContainer(id = page2)作为我的当前页面。我尝试设置currentPageIndex = 1,但这样做我得到一个空白页。

1 个答案:

答案 0 :(得分:0)

  1. 创建[Bindable]布尔属性(即[Bindable] public var isShowingFirstPage:Boolean = true
  2. 将BorderContainer的“visible”和“includeInLayout”属性设置为取决于此值。 (即...... id="page1" visible="{isShowingFirstPage:Boolean}" includeInLayout="{isShowingFirstPage:Boolean} ...代表第一个,...... id="page2" visible="{!isShowingFirstPage:Boolean}" includeInLayout="{!isShowingFirstPage:Boolean} ...代表第二个代表
  3. 基于某些输入,用户手势,业务逻辑,以及两个容器应相应地显示/更新来切换/更改该布尔值。