Browse Source

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

master
parent
commit
ac9f603a4b
1 changed files with 30 additions and 40 deletions
  1. +30
    -40
      6.0/игра/075.Анимация.js

+ 30
- 40
6.0/игра/075.Анимация.js View File

@@ -26,29 +26,11 @@ function Анимация(элемент, параметры)
this.запустить = function() this.запустить = function()
{ {
this.идёт = false; 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; return;
} }


this.диапазоны = диапазоны;
this.воспроизведений = воспроизведений;
this.кадр = [к0, к1];
this.скорость = скорость;

let ширинаДиапазона = Math.abs(this.диапазоны[0][2] - this.диапазоны[0][0]); let ширинаДиапазона = Math.abs(this.диапазоны[0][2] - this.диапазоны[0][0]);
let высотаДиапазона = Math.abs(this.диапазоны[0][3] - this.диапазоны[0][1]); let высотаДиапазона = Math.abs(this.диапазоны[0][3] - this.диапазоны[0][1]);
let ширинаКадра = this.кадр[0]; let ширинаКадра = this.кадр[0];
@@ -60,7 +42,7 @@ function Анимация(элемент, параметры)
this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали; this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали;
this.номерКадра = -1; this.номерКадра = -1;
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали; this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
this.началоДиапазона = [диапазоны[0][0], диапазоны[0][1]];
this.началоДиапазона = [this.диапазоны[0][0], this.диапазоны[0][1]];
this.номерИтерации = null; this.номерИтерации = null;
this.идёт = true; this.идёт = true;
}; };
@@ -76,25 +58,6 @@ function Анимация(элемент, параметры)
this.номерИтерации = итерация; this.номерИтерации = итерация;
}; };


this.разобратьДиапазон = function(номер)
{
var список = [];
for (var н = 0; н < 4; ++н)
{
let ключ = `диапазон.${номер}.${н}`;
let значение = Number(параметры[ключ]);
if (значение)
{
список.push(значение);
}
}
if (список.length == 4)
{
return список;
}
return null;
};

this.разобратьДиапазоны = function() this.разобратьДиапазоны = function()
{ {
let ключи = Object.keys(параметры).sort(); let ключи = Object.keys(параметры).sort();
@@ -130,6 +93,33 @@ function Анимация(элемент, параметры)
return null; 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.запустить(); this.запустить();
} }

Loading…
Cancel
Save