如何每秒运行一次KineticJS动画并对其应用缓动?

时间:2014-05-14 21:16:11

标签: javascript animation canvas html5-canvas kineticjs

我正在创建一个天文台,我已经拥有了所有代码。现在我试图将“缺口”的旋转与秒的通过联系起来。我有以下代码块:

            var minutesNotchAnimation = new Kinetic.Animation(function(frame) {

                var notch = self.minutesNotchLayer.get('#minutesNotchShape')[0];

                notch.rotate(rotationAngle);

            }, this.minutesNotchLayer);

            minutesNotchAnimation.start();

如何每秒执行一次动画?另外,我如何应用自定义缓和?最后......我如何控制动画的长度?我发现KineticJS文档确实缺乏地方,也没有很多全面的资源可以深入解释动画类。

提前致谢!

P.S。如果有人需要查看完整代码,这里有一个小提琴 - > http://jsfiddle.net/k4xA8/

1 个答案:

答案 0 :(得分:1)

您无法设置动画间隔,因为此对象没有这样做。如果你想要更准确(并使用缓动),那么使用Tween会更容易。

顺便说一句,您可以使用frame.timeDiff属性或frame.time来控制动画......

     var minutesNotchCount = 0;
        var minutesNotchAnimation = new Kinetic.Animation(function(frame) {
            minutesNotchCount += frame.timeDiff;
            var notch = self.minutesNotchLayer.get('#minutesNotchShape')[0];
            if (minutesNotchCount >= 40) {
                notch.rotate(0.25);
                minutesNotchCount = 0;
            }

        }, this.minutesNotchLayer);

        minutesNotchAnimation.start();