Domanda

Recentemente mi sto dando un altro colpo di Dashcode;)

E 'fantastico. È solo Penso che non è ben documentata. Ho un oggetto stackLayout con solo due viste in esso, e una coppia di pulsanti che interscambiano le viste con una transizione. (Viste mostrano dati di una vasta gamma, list) Animazioni e transizioni lavoro perfetto. Il problema è, quando si preme un pulsante mentre l'animazione l'animazione riparte e sembra brutto (Se avessi n viste per una matrice di origine dati di lunghezza n questo should't essere un problema, ma questo non è il mio caso).

Voglio pulsanti disabilitare, mentre l'animazione è in corso.

C'è un callback, delegato, o un modo per ricevere una notifica quando l'animazione è finito?

Questo è quello che ho fatto:

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);
}
È stato utile?

Soluzione

Alla fine ha trovato la risposta a questa. Ecco come ho fatto:

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

In realtà si possono trovare tutti i metodi e le proprietà stackLayout nel file StackLayout.js nel progetto !!

Spero che questo aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top