поправить мерцание при начале анимации

This commit is contained in:
2021-12-17 22:18:23 +03:00
parent 0b3f204766
commit 53604765d8
5 changed files with 14 additions and 13 deletions

View File

@@ -35,7 +35,7 @@ function Анимация(элемент, параметры)
this.номерВоспроизведения = 0;
this.колвоВоспроизведений = воспроизведений;
this.размерКадра = [к0, к1];
this.поГоризонтаи = кадровПоГоризонтали > кадровПоВертикали;
this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали;
this.номерКадра = 0;
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
// Возможно, в будущем стоит заменить частные таймеры на один общий.

View File

@@ -8,7 +8,6 @@ function Анимации(события)
this.запустить = function(имя, элемент)
{
/**/console.debug("ИГР Анимации.запустить", имя, элемент, this.анимации);
// Останавливаем прошлый экземпляр этой анимации на том же элементе.
this.остановить(имя, элемент);
// Запускаем новый экземпляр анимации на том же элементе.
@@ -42,7 +41,6 @@ function Анимации(события)
this.анимации[ключ].остановить();
delete this.анимации[ключ];
}
/**/console.debug("ИГР Анимации.остановить", имя, элемент, this.анимации);
}
// Конструктор.

View File

@@ -74,6 +74,7 @@ function Слежение(состояние, изображения, тела)
var x = this.lerp(x0, x1, скорость, предел);
var y = this.lerp(y0, y1, скорость, предел);
/*
// Ничего не делаем, если разница ничтожна.
let ничтожно = 0.00001;
if (
@@ -86,6 +87,7 @@ function Слежение(состояние, изображения, тела)
) {
return;
}
*/
// Иначе применяем новые значения.
элемент.dataset.слежениеX = x;

View File

@@ -45,10 +45,9 @@ function Объекты(состояние, события)
свойство == "вид" ||
свойство == "анимация"
) {
let пр = this.пр(имя);
let вид = this.задано[имя]["вид"];
let анимация = this.задано[имя]["анимация"];
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
this.обновитьИзображение(производноеИмя, null, вид, анимация);
}
};
@@ -96,22 +95,25 @@ function Объекты(состояние, события)
this.обновитьВидАнимацию = function(имя)
{
let пр = this.пр(имя);
let вид = this.задано[имя]["вид"];
let анимация = this.задано[имя]["анимация"];
let производноеИмя = `объекты-${имя}`;
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
this.обновитьИзображение(производноеИмя, null, вид, анимация);
};
this.обновитьИзображение = function(имя, пр, вид, анимация)
{
var описание = {
вид: вид,
анимация: анимация,
};
if (пр)
{
описание["пр"] = пр;
}
состояние.разобрать({
изображения: {
[имя]: {
пр: пр,
вид: вид,
анимация: анимация,
},
[имя]: описание,
},
});
};

View File

@@ -7,7 +7,6 @@ function Состояния(состояние)
this.применить = function(имя)
{
console.debug("ИГР Состояния.применить", имя, this.задано[имя]);
состояние.разобратьВыпрямленный(this.задано[имя]);
}