поправить мерцание при начале анимации
This commit is contained in:
@@ -35,7 +35,7 @@ function Анимация(элемент, параметры)
|
|||||||
this.номерВоспроизведения = 0;
|
this.номерВоспроизведения = 0;
|
||||||
this.колвоВоспроизведений = воспроизведений;
|
this.колвоВоспроизведений = воспроизведений;
|
||||||
this.размерКадра = [к0, к1];
|
this.размерКадра = [к0, к1];
|
||||||
this.поГоризонтаи = кадровПоГоризонтали > кадровПоВертикали;
|
this.поГоризонтали = кадровПоГоризонтали > кадровПоВертикали;
|
||||||
this.номерКадра = 0;
|
this.номерКадра = 0;
|
||||||
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
|
this.колвоКадров = this.поГоризонтали ? кадровПоГоризонтали : кадровПоВертикали;
|
||||||
// Возможно, в будущем стоит заменить частные таймеры на один общий.
|
// Возможно, в будущем стоит заменить частные таймеры на один общий.
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ function Анимации(события)
|
|||||||
|
|
||||||
this.запустить = function(имя, элемент)
|
this.запустить = function(имя, элемент)
|
||||||
{
|
{
|
||||||
/**/console.debug("ИГР Анимации.запустить", имя, элемент, this.анимации);
|
|
||||||
// Останавливаем прошлый экземпляр этой анимации на том же элементе.
|
// Останавливаем прошлый экземпляр этой анимации на том же элементе.
|
||||||
this.остановить(имя, элемент);
|
this.остановить(имя, элемент);
|
||||||
// Запускаем новый экземпляр анимации на том же элементе.
|
// Запускаем новый экземпляр анимации на том же элементе.
|
||||||
@@ -42,7 +41,6 @@ function Анимации(события)
|
|||||||
this.анимации[ключ].остановить();
|
this.анимации[ключ].остановить();
|
||||||
delete this.анимации[ключ];
|
delete this.анимации[ключ];
|
||||||
}
|
}
|
||||||
/**/console.debug("ИГР Анимации.остановить", имя, элемент, this.анимации);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Конструктор.
|
// Конструктор.
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ function Слежение(состояние, изображения, тела)
|
|||||||
var x = this.lerp(x0, x1, скорость, предел);
|
var x = this.lerp(x0, x1, скорость, предел);
|
||||||
var y = this.lerp(y0, y1, скорость, предел);
|
var y = this.lerp(y0, y1, скорость, предел);
|
||||||
|
|
||||||
|
/*
|
||||||
// Ничего не делаем, если разница ничтожна.
|
// Ничего не делаем, если разница ничтожна.
|
||||||
let ничтожно = 0.00001;
|
let ничтожно = 0.00001;
|
||||||
if (
|
if (
|
||||||
@@ -86,6 +87,7 @@ function Слежение(состояние, изображения, тела)
|
|||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Иначе применяем новые значения.
|
// Иначе применяем новые значения.
|
||||||
элемент.dataset.слежениеX = x;
|
элемент.dataset.слежениеX = x;
|
||||||
|
|||||||
@@ -45,10 +45,9 @@ function Объекты(состояние, события)
|
|||||||
свойство == "вид" ||
|
свойство == "вид" ||
|
||||||
свойство == "анимация"
|
свойство == "анимация"
|
||||||
) {
|
) {
|
||||||
let пр = this.пр(имя);
|
|
||||||
let вид = this.задано[имя]["вид"];
|
let вид = this.задано[имя]["вид"];
|
||||||
let анимация = this.задано[имя]["анимация"];
|
let анимация = this.задано[имя]["анимация"];
|
||||||
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
|
this.обновитьИзображение(производноеИмя, null, вид, анимация);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -96,22 +95,25 @@ function Объекты(состояние, события)
|
|||||||
|
|
||||||
this.обновитьВидАнимацию = function(имя)
|
this.обновитьВидАнимацию = function(имя)
|
||||||
{
|
{
|
||||||
let пр = this.пр(имя);
|
|
||||||
let вид = this.задано[имя]["вид"];
|
let вид = this.задано[имя]["вид"];
|
||||||
let анимация = this.задано[имя]["анимация"];
|
let анимация = this.задано[имя]["анимация"];
|
||||||
let производноеИмя = `объекты-${имя}`;
|
let производноеИмя = `объекты-${имя}`;
|
||||||
this.обновитьИзображение(производноеИмя, пр, вид, анимация);
|
this.обновитьИзображение(производноеИмя, null, вид, анимация);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.обновитьИзображение = function(имя, пр, вид, анимация)
|
this.обновитьИзображение = function(имя, пр, вид, анимация)
|
||||||
{
|
{
|
||||||
|
var описание = {
|
||||||
|
вид: вид,
|
||||||
|
анимация: анимация,
|
||||||
|
};
|
||||||
|
if (пр)
|
||||||
|
{
|
||||||
|
описание["пр"] = пр;
|
||||||
|
}
|
||||||
состояние.разобрать({
|
состояние.разобрать({
|
||||||
изображения: {
|
изображения: {
|
||||||
[имя]: {
|
[имя]: описание,
|
||||||
пр: пр,
|
|
||||||
вид: вид,
|
|
||||||
анимация: анимация,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ function Состояния(состояние)
|
|||||||
|
|
||||||
this.применить = function(имя)
|
this.применить = function(имя)
|
||||||
{
|
{
|
||||||
console.debug("ИГР Состояния.применить", имя, this.задано[имя]);
|
|
||||||
состояние.разобратьВыпрямленный(this.задано[имя]);
|
состояние.разобратьВыпрямленный(this.задано[имя]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user