#actionscript-3 #apache-flex #flex4 #flex4.5
#actionscript-3 #apache-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>
Этот код показывает страницу 1 как текущую страницу. Я хочу динамически отображать BorderContainer (id = page2) в качестве моей текущей страницы при нажатии кнопки.Я попытался установить currentPageIndex = 1, но при этом я получаю пустую страницу.
Комментарии:
1. Что такое FlexBook и почему вы не можете найти ответ через их API или форумы?
2. Доступна функция turnToPage(index:int). Но я не могу отключить перелистывание страницы. т.е. я хочу перейти на определенную страницу (page2) и отключить перелистывание страниц.
Ответ №1:
- Создайте логическое свойство [связываемое] (т.е.
[Bindable] public var isShowingFirstPage:Boolean = true
) - Установите свойства BorderContainer «visible» и «includeInLayout» в зависимости от этого значения. (т.е. …
id="page1" visible="{isShowingFirstPage:Boolean}" includeInLayout="{isShowingFirstPage:Boolean}
… для первого и …id="page2" visible="{!isShowingFirstPage:Boolean}" includeInLayout="{!isShowingFirstPage:Boolean}
… для второго) - переключать / изменять это логическое значение на основе некоторого ввода, жеста пользователя, бизнес-логики, чего угодно, и два контейнера должны отображаться / обновляться соответствующим образом.
Комментарии:
1. Я пробовал это, но все это скрывается вместо отображения следующей страницы.
2. Можете ли вы обновить и показать свой код, как это выглядит? Также какую кодовую базу вы используете для FlexBook? Это из «rubenswieringa»?
3. Без знания вашего кода это сложно, но я вижу свойство «animateCurrentPageIndex». Попробуйте изменить это значение на «false», а затем увеличить новое свойство «currentPageIndex». Не забудьте вернуть «animateCurrentPageIndex» обратно в true!
4. с помощью turnToPage(index:int, animate:boolean) Я могу перейти на определенную страницу. Я хочу, чтобы пользователь не мог перевернуть страницу, как только он перешел на эту конкретную страницу. Я пытался выполнить book.enabled = false, но здесь это не работает.
5. Затем, основываясь на любом пользовательском жесте, вызывающем метод turnToPage (т. Е. MouseEvent.CLICK), Просто оберните условие, чтобы проверить и посмотреть, посещал ли пользователь уже эту страницу. Если они этого не сделали, то вызовите метод с соответствующими аргументами. В противном случае не вызывайте их метод. Похоже, это проблема бизнес-логики.