【发布时间】:2021-10-05 07:56:32
【问题描述】:
我尝试使用 Konva.js 每 250 毫秒在时间循环中绘制多个矩形,但画布仅在循环完成后更新。我做错了什么?
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
var width = window.innerWidth;
var height = window.innerHeight;
var stage = new Konva.Stage({
container: 'container',
width: width,
height: height,
});
var layer = new Konva.Layer();
stage.add(layer);
for (let i=0; i < 10; i++){
var rect1 = new Konva.Rect({
x: i*25,
y: 20,
width: 20,
height: 20,
fill: 'red'
});
layer.add(rect1);
layer.draw();
sleep(250);
}
【问题讨论】:
-
这不是处理动画延迟的最佳方式。您应该考虑使用提供计数器和时间差异的 Konva.Animation,可以在没有这种笨重的延迟机制的情况下使用。动画帧处理所有时间,并为您提供编写逼真运动的最佳机会。示例stackoverflow.com/questions/53277899/…
标签: konvajs