0

假设我对画布上的每个元素应用补间

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

所有项目都已补间,并已从其原始状态传递到最终状态。我的问题是:我将如何应用 reverse() 将每个项目恢复到原始状态?

4

1 回答 1

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

于 2013-07-29T19:28:43.263 回答