Недавно я делаю еще один снимок Dashcode;)
Отлично. Это просто я думаю, не очень хорошо задокументировано.
У меня есть объект stackLayout только с двумя представлениями в нем, и несколько кнопок, которые обмениваются представлениями с переходом (представления показывают данные большого массива, list
)
Анимации и переходы работают отлично. Проблема в том, что когда я нажимаю кнопку во время анимации, анимация начинается снова и выглядит ужасно (если бы у меня было n представлений для массива источника данных длины n, это не должно быть проблемой, но это не мой случай)
Я хочу отключить кнопки во время анимации.
Есть ли какой-нибудь обратный вызов, делегат или каким-либо другим способом я могу получить уведомление, когда анимация закончится?
Вот что я сделал:
function _changeView(transitionDirection, newIndex){
//Create transition
var newTransition = new Transition(Transition.SWAP_TYPE, 0.9, Transition.EASE_TIMING);
newTransition.direction = transitionDirection;
//I only have two views. I use currentView's id to calculate not current view id and change text inside of it.
var stackLayout = document.getElementById('stackLayout').object;//stackLayout object
var nextViewId = (stackLayout.getCurrentView().id == 'view1')? '2':'1'; //
//change the text in the view that is going to appear
document.getElementById('text'+nextViewId).innerHTML = list[curIndex];
stackLayout.setCurrentViewWithTransition('view'+ nextViewId, newTransition, false);
}
function goPrevious(event)
{
curIndex--;
if(curIndex < 0){
curIndex = list.length-1;
}
_changeView(Transition.LEFT_TO_RIGHT_DIRECTION, curIndex);
}
function goNext(event)
{
curIndex++;
if(curIndex >list.length - 1){
curIndex = 0;
}
_changeView(Transition.RIGHT_TO_LEFT_DIRECTION, curIndex);
}