Больше контроля при анимации в Dashcode / Dashboard? - PullRequest
0 голосов
/ 02 декабря 2010

Недавно я делаю еще один снимок 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);
}

1 Ответ

2 голосов
/ 02 февраля 2011

В конце концов нашел ответ на этот вопрос. Вот как я это сделал:

document.getElementById('stackLayout').object.endTransitionCallback=function(stackLayout, oldView, newView) {
    //PUT CODE HERE USING stackLayout, oldView, newView to show params
}

Фактически вы можете найти все методы и свойства stackLayout в файле StackLayout.js в вашем проекте !!

Надеюсь, это поможет

...