|
|
@@ -32,9 +32,11 @@ function Анимация(элемент, параметры) |
|
|
|
let кадровПоГоризонтали = Math.floor(ширинаДиапазона / ширинаКадра); |
|
|
|
let кадровПоВертикали = Math.floor(высотаДиапазона / высотаКадра); |
|
|
|
|
|
|
|
this.номерКадра = 0; |
|
|
|
this.номерВоспроизведения = 0; |
|
|
|
this.колвоВоспроизведений = воспроизведений; |
|
|
|
this.размерКадра = [к0, к1]; |
|
|
|
this.поГоризонтаи = кадровПоГоризонтали > кадровПоВертикали; |
|
|
|
this.номерКадра = 0; |
|
|
|
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали; |
|
|
|
// Возможно, в будущем стоит заменить частные таймеры на один общий. |
|
|
|
// Вдруг в браузерах есть ограничение на количество таймеров от одной страницы. |
|
|
@@ -54,11 +56,19 @@ function Анимация(элемент, параметры) |
|
|
|
this.номерКадра += 1; |
|
|
|
if (this.номерКадра >= this.колвоКадров) |
|
|
|
{ |
|
|
|
this.номерВоспроизведения += 1; |
|
|
|
this.номерКадра = 0; |
|
|
|
if ( |
|
|
|
this.колвоВоспроизведений > 0 && |
|
|
|
this.номерВоспроизведения >= this.колвоВоспроизведений |
|
|
|
) { |
|
|
|
this.остановить(); |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
let x = this.поГоризонтали ? this.номерКадра * this.размерКадра[0] : 0; |
|
|
|
let y = this.поГоризонтали ? 0 : this.номерКадра * this.размерКадра[1]; |
|
|
|
|
|
|
|
элемент.style.backgroundPosition = `${x}px ${y}px`; |
|
|
|
}; |
|
|
|
|
|
|
|