2010-12-02 52 views
0

最近我又給了Dashcode;)在Dashcode/Dashboard中進行動畫製作時有更多控制權?

這很好。只是我認爲沒有很好的記錄。 我有一個只有兩個視圖的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); 
} 

回答

2

終於找到這個問題的答案。以下是我做的:

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

事實上,你可以找到所有在項目中stackLayout方法和屬性在StackLayout.js文件!

希望這會有所幫助