Анимация.разобратьПараметры

This commit is contained in:
2022-05-24 17:07:11 +03:00
parent d26a2ba181
commit ac9f603a4b

View File

@@ -26,29 +26,11 @@ function Анимация(элемент, параметры)
this.запустить = function()
{
this.идёт = false;
let п = параметры;
let воспроизведений = Number(п["воспроизведений"]);
let скорость = Number(п["скорость"]);
let к0 = Number(п["кадр.0"]);
let к1 = Number(п["кадр.1"]);
let диапазоны = this.разобратьДиапазоны();
if (
воспроизведений == null ||
скорость == null ||
к0 == null ||
к1 == null ||
диапазоны == null
) {
if (!this.разобратьПараметры())
{
return;
}
this.диапазоны = диапазоны;
this.воспроизведений = воспроизведений;
this.кадр = [к0, к1];
this.скорость = скорость;
let ширинаДиапазона = Math.abs(this.диапазоны[0][2] - this.диапазоны[0][0]);
let высотаДиапазона = Math.abs(this.диапазоны[0][3] - this.диапазоны[0][1]);
let ширинаКадра = this.кадр[0];
@@ -60,7 +42,7 @@ function Анимация(элемент, параметры)
this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали;
this.номерКадра = -1;
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
this.началоДиапазона = [диапазоны[0][0], диапазоны[0][1]];
this.началоДиапазона = [this.диапазоны[0][0], this.диапазоны[0][1]];
this.номерИтерации = null;
this.идёт = true;
};
@@ -76,25 +58,6 @@ function Анимация(элемент, параметры)
this.номерИтерации = итерация;
};
this.разобратьДиапазон = function(номер)
{
var список = [];
for (var н = 0; н < 4; ++н)
{
let ключ = `диапазон.${номер}.${н}`;
let значение = Number(параметры[ключ]);
if (значение)
{
список.push(значение);
}
}
if (список.length == 4)
{
return список;
}
return null;
};
this.разобратьДиапазоны = function()
{
let ключи = Object.keys(параметры).sort();
@@ -130,6 +93,33 @@ function Анимация(элемент, параметры)
return null;
};
this.разобратьПараметры = function()
{
let п = параметры;
let воспроизведений = Number(п["воспроизведений"]);
let скорость = Number(п["скорость"]);
let к0 = Number(п["кадр.0"]);
let к1 = Number(п["кадр.1"]);
let диапазоны = this.разобратьДиапазоны();
if (
воспроизведений == null ||
скорость == null ||
к0 == null ||
к1 == null ||
диапазоны == null
) {
return false;
}
this.диапазоны = диапазоны;
this.воспроизведений = воспроизведений;
this.кадр = [к0, к1];
this.скорость = скорость;
return true;
};
// Конструктор.
this.запустить();
}