|
|
@@ -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.запустить(); |
|
|
|
} |