2013-07-29 65 views
0

讓我們假設我申請補間的每個元素在我的畫布在每個()中應用補間,我如何使用reverse()?

elements.each(function (element) { 
    new Kinetic.Tween({ 
     node: element, 
     rotationDeg: 180 
    }).play(); 
}); 

所有項目都已進行補間,從他們的原始狀態已經傳遞到最終狀態。我的問題是:如何應用reverse()將每個項目恢復到原始狀態?

回答

1

存儲陣列內的補間,然後遍歷數組,並使用.reverse()

elements = stage.get('Rect'); 
    var tweenArray = []; 

    // reverse tween 
    document.getElementById('reverse').addEventListener('click', function() { 
     for (var i=0; i<tweenArray.length; i++) { 
      tweenArray[i].reverse(); 
     } 
    }, false); 

    // play tween forward 
    document.getElementById('play').addEventListener('click', function() { 
     elements.each(function (element) { 
      var tween = new Kinetic.Tween({ 
       node: element, 
       rotationDeg: 180 
      }).play(); 
      tweenArray.push(tween); 
     }); 
    }, false); 

jsfiddle

+1

+1是的,很好的例子!我知道這只是一個插圖,但在製作時請務必防止連續點擊播放或倒退。例如,單擊播放兩次會擾亂動畫。 – markE

+0

感謝@markE,你是絕對正確的,所以謝謝你指出:D – projeqht

+0

謝謝項目。這是有幫助的:) – Yushell

相關問題