2010-12-02 31 views
0

Récemment, je donne un autre coup à Dashcode;)Plus de contrôle lors des animations dans Dashcode/Dashboard?

C'est génial. Est-ce que je pense que ce n'est pas bien documenté. J'ai un objet stackLayout avec seulement deux vues, et quelques boutons qui échangent les vues avec une transition (les vues montrent les données d'un grand tableau, list) Les animations et les transitions fonctionnent parfaitement. Le problème est, quand j'appuie sur un bouton pendant l'animation, l'animation recommence et qu'elle est moche (Si j'avais n vues pour un tableau de sources de longueur n cela ne devrait pas poser de problème, mais ce n'est pas mon cas).

Je souhaite désactiver les boutons pendant l'animation.

Y a-t-il un rappel, un délégué ou un moyen de recevoir une notification lorsque l'animation est terminée?

C'est ce que je l'ai fait:

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); 
} 

Répondre

2

finalement trouvé la réponse à cette question. Voici comment je l'ai fait:

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

En fait, vous pouvez trouver toutes les méthodes stackLayout et propriétés dans le fichier StackLayout.js dans votre projet !!

Espérons que cela aide