Я пытаюсь создать эффект, когда облака плавают по экрану. Я попробовал обернуть весь процесс создания облачной формы и группы облаков внутри функции, поместив анимацию в функцию, а затем поместив эту функцию внутри setInterval. Он работает в том смысле, что анимация повторяется, за исключением того, что она неуклонно наращивает скорость и начинает идти безумно быстро.Анимация сходит с ума в KineticJS
Кто-нибудь знает, что здесь происходит? Я использовал эту же стратегию в другой части моей программы, и она хорошо работала. Единственное отличие состоит в том, что я создавал одну форму, а не три формы и группу внутри этой функции.
Пожалуйста, дайте мне знать, спасибо!
var cloudy = function(){
var bigCloud = new Kinetic.Group({});
var cloud1 = new Kinetic.Circle({
x:257,
y:28,
radius:8,
fill:'white'
})
var cloud2 = new Kinetic.Circle({
x:283,
y:28,
radius:8,
fill:'white'
})
var cloud3 = new Kinetic.Circle({
x:270,
y:26,
radius:13,
fill:'white'
})
bigCloud.add(cloud1);
bigCloud.add(cloud2);
bigCloud.add(cloud3);
skyLayer.add(bigCloud);
cloudx=500;
var cloudMove = new Kinetic.Animation(function(){
bigCloud.setX(cloudx);
cloudx-=2;
},skyLayer);
cloudMove.start();
};
setInterval(function(){
cloudy();
},1000)
я, вероятно, должен был быть более ясным в моей оригинальный вопрос. Мне нужно создать цикл, в котором создается новое облако, а затем анимируется каждую секунду. Этот код хорош, но он помогает только при создании и анимации одного облака. – user3294779
Хорошо, я пересмотрел свой ответ как на анимированные существующие облака, так и на создание новых облаков. Опять же, ключ к остановке вашей «беглой» анимации - использовать только 1 анимацию. Удачи с вашим проектом! – markE