javascript - KineticJS:完成其他补间后播放补间

标签 javascript animation kineticjs

我只需要制作一些动画,我需要为几个不同的对象创建几个补间,例如气泡。所以我只想要每个气泡的动画气泡,我的意思是在第一个动画气泡结束时启动第二个动画气泡。我这样写:

var tweens = [];
      for(var i =0; i < bubbleTab.length; i++)
      {
        var tween = new Kinetic.Tween({
          node: bubbleTab[i], 
          x: invisibleBubbles[i].getX(),
          y: invisibleBubbles[i].getY(),
          easing: Kinetic.Easings.BounceEaseOut,
          onFinish: function(){
          tweens[i+1].play();
          },
          duration: 2
        });

        tweens.push(tween);
      }

或者我只是将 onFinish: function() 替换为 playNextTween(i) 并编写方法

function playNextTween(i)
      {

        tweens[i].play();

      }

但还是不行。我不知道我能做什么。我在循环中尝试动画补间,但在循环中所有补间同时执行。

有什么想法吗?我知道 GSAP 和他的 TweenTimeline,但是使用 KineticJS 没有人能从 GSAP 工作中轻松下来

最佳答案

而不是使用

tweens[i+1].play();

使用变量计数器遍历补间数组。例如:

    var rects = layer.get('Rect');
    var rectCount = rects.length;

    var tweens = [];
    var tweenCounter = 1;
    for (var i = 0; i < rectCount; i++) {
        var tween = new Kinetic.Tween({
            node: rects[i],
            duration: 1,
            y: 150,
            onFinish: function() {
                if (tweenCounter !== rectCount) { //Prevent an undefined tween from being played at the end
                    tweens[tweenCounter].play();
                    tweenCounter++;
                }
            }
        });
        tweens.push(tween);
    }

JSFIDDLE

关于javascript - KineticJS:完成其他补间后播放补间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824920/

相关文章:

javascript - 使用 Chrome native 消息传递触发时批处理文件不提示用户输入

javascript - Jquery.Change 不起作用

javascript - KineticJS:降低拖动事件的敏感性

javascript - Kineticjs 将元素添加到舞台

javascript - KineticJS:如何获取 Sprite 或图像的宽度和高度?

javascript - 使用 jQuery 替换 li 标签内的文本

javascript - 在 javascript 中读取 asp HiddenField

java - 如何在两个不同点之间绘制移动动画线

debugging - 带延迟的 CSS3 旋转动画

javascript - IE9 不支持 css/jquery 动画 - 需要解决方法