использовать первый диапазон перед повторением второго

This commit is contained in:
2022-05-25 16:46:15 +03:00
parent df55d08da3
commit 048c753531

View File

@@ -21,7 +21,8 @@ function Анимация(элемент, параметры)
{ {
return; return;
} }
this.подготовитьДиапазон(0); this.номерДиапазона = 0;
this.подготовитьДиапазон();
this.номерОтрисовки = null; this.номерОтрисовки = null;
this.идёт = true; this.идёт = true;
}; };
@@ -40,22 +41,40 @@ function Анимация(элемент, параметры)
this.переключитьКадр = function() this.переключитьКадр = function()
{ {
this.номерКадра += 1; this.номерКадра += 1;
if (this.номерКадра >= this.колвоКадров) // Кадры ещё есть.
if (this.номерКадра < this.колвоКадров)
{ {
this.номерВоспроизведения += 1; return true;
}
// Кадры диапазона завершились.
// Переключаем на следующий диапазон, если:
// 1. сейчас первый (начальный) диапазон
// 2. всего диапазонов хотя бы два
if (
this.номерДиапазона == 0 &&
this.диапазоны.length > 1
) {
this.номерДиапазона++;
this.подготовитьДиапазон();
this.номерКадра = 0; this.номерКадра = 0;
if ( return true;
this.воспроизведений > 0 && }
this.номерВоспроизведения >= this.воспроизведений // Пробуем использовать следующее воспроизведение.
) { this.номерВоспроизведения += 1;
return false; this.номерКадра = 0;
} // Воспроизведений не осталось.
if (
this.воспроизведений > 0 &&
this.номерВоспроизведения >= this.воспроизведений
) {
return false;
} }
return true; return true;
}; };
this.подготовитьДиапазон = function(н) this.подготовитьДиапазон = function()
{ {
let н = this.номерДиапазона;
let ширинаДиапазона = Math.abs(this.диапазоны[н][2] - this.диапазоны[н][0]); let ширинаДиапазона = Math.abs(this.диапазоны[н][2] - this.диапазоны[н][0]);
let высотаДиапазона = Math.abs(this.диапазоны[н][3] - this.диапазоны[н][1]); let высотаДиапазона = Math.abs(this.диапазоны[н][3] - this.диапазоны[н][1]);
let ширинаКадра = this.кадр[0]; let ширинаКадра = this.кадр[0];
@@ -124,8 +143,8 @@ function Анимация(элемент, параметры)
return false; return false;
} }
this.диапазоны = диапазоны;
this.воспроизведений = воспроизведений; this.воспроизведений = воспроизведений;
this.диапазоны = диапазоны;
this.кадр = [к0, к1]; this.кадр = [к0, к1];
this.скорость = скорость; this.скорость = скорость;