Javascript KineticJS onFrame动作缓慢且急促

Javascript KineticJS onFrame动作缓慢且急促,javascript,kineticjs,Javascript,Kineticjs,基本上,如果我使用stage.onFrame(函数(frame){animationLayer.draw()})然后我会得到一个急促的动画,但如果我做类似于设置间隔(draw,25)

基本上,如果我使用
stage.onFrame(函数(frame){animationLayer.draw()})然后我会得到一个急促的动画,但如果我做类似于
设置间隔(draw,25)animationLayer.draw()在绘图,然后我得到一个很好的平滑动画

我是不是在KineticJS上做错了什么,或者只是在性能上有点差劲?我只是在旋转一个长方形,但它看起来很不稳定

chrome浏览器比firefox浏览器更糟糕,但firefox仍然不是完全流畅的

有人知道为什么吗

    var debug, stage, animationLayer;
    var sw, sh;
    var spinRect;

    var blobArray = [];

    window.onload = function() {
        debug = document.getElementById('debug');

        stage = new Kinetic.Stage({container: "kineticdiv", width: 700, height: 400});
        animationLayer = new Kinetic.Layer();    
        sw = stage.attrs.width;
        sh = stage.attrs.height;

        spinRect = new Kinetic.Rect({
            x: sw/4*3, 
            y: sh/2,
            width: 50, 
            height: 50,
            fill: "#eee", 
            stroke: "#777",
            strokeWidth: 2,
            centerOffset: {
                x: 25,
                y: 25
            }
        });

        var centerRect = new Kinetic.Rect({
            x: sw/4-5, 
            y: sh/2-5,
            width: 10, 
            height: 10,
            fill: "cyan",
            stroke: "black",
            strokeWidth: 2
        });

        animationLayer.add(spinRect);
        animationLayer.add(centerRect);
        stage.add(animationLayer);

        setInterval(update, 25); // 33 ms = 30 fps, 25 ms = 40 fps

        stage.onFrame(function(frame){animationLayer.draw()});
        stage.start();
    };

    function update()
    {
        spinRect.rotate(0.03); //Math.PI / 100); // even removed this for less calculations
        // animationLayer.draw() // smoother if I use this instead
    }
谢谢


编辑:事实证明,Chrome是造成这些问题的罪魁祸首,最近的一次更新造成了一些麻烦

v3.9.4将于今天晚些时候发布,它对动画和过渡进行了一些重大改进。这个动画对你来说平滑吗

另外,如果你同时运行很多其他东西,动画可能会很不稳定。查看这个使用requestAnimFrame的示例,看看这是否平滑(纯JS,无库):


嘿,很高兴听到3.9.4稍后将发布。在你告诉我关于chrome等的事情之前,我已经发布了这个问题。第一个链接并没有那么平滑——当它移动时有点模糊,有点紧张。不过,第二个环节非常顺利。铬测试。