Итак, у меня есть цикл for, генерирующий, размещающий и tweening 20 прямоугольников. Однако код только уничтожает последний сгенерированный прямоугольник. Есть ли (идеально простой) способ гарантировать, что .destroy() применяется к каждому прямоугольнику, а не к последнему?Уничтожение нескольких фигур в конце анимации KonvaJS
$("#combat").click(function() {
for (var i = 0; i < 20; i++){
var rect = new Konva.Rect({
x: -500,
y: stage.height()*Math.random(),
width: 480,
height: 20,
fill: 'green',
stroke: 'black',
strokeWidth: 3
});
layer.add(rect);
tween = new Konva.Tween({
node: rect,
duration: 1,
x: 500,
onFinish: function() {
rect.destroy()
}
}).play();
}
});
К сожалению, это не работает. Тем не менее уничтожается только последний прямоугольник. Может быть, потому, что мы переопределяем переменную «tween» каждый цикл, который перезаписывает функцию onFinish для предыдущего определения? – user3317592
Извините, это была моя ошибка, объект Group должен быть инициализирован до цикла. Код обновлен. –
Это работает (огромное спасибо!), Но есть ли способ обеспечить его уничтожение только прямоугольника? Это то, что мне в конечном итоге нужно делать, потому что у меня в моей анимации «продолжительность: 2 + Math.random() * 4», и из того, что я могу сказать, скрипт уничтожает всю группу после завершения твина последнего прямоугольника. – user3317592