gpt4 book ai didi

javascript - KineticJS onFrame 缓慢且不稳定

转载 作者:行者123 更新时间:2023-11-30 13:20:33 32 4
gpt4 key购买 nike

基本上,如果我使用 stage.onFrame(function(frame){animationLayer.draw()}); 然后我会得到一个不稳定的动画,但如果我做类似 setInterval( 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 将于今天晚些时候发布,其中有一些重要的动画和过渡改进。这个动画对你来说流畅吗?

http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-animate-position-tutorial/

此外,如果同时运行许多其他内容,动画可能会不稳定。查看这个使用 requestAnimFrame 的示例,看看它是否流畅(纯 JS,无库):

http://paulirish.com/2011/requestanimationframe-for-smart-animating/

关于javascript - KineticJS onFrame 缓慢且不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10367140/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com