mirror of
https://github.com/photonstorm/phaser
synced 2024-11-24 21:53:59 +00:00
Optimized TweenData.update
to achieve the same result with my less repetition. Also fixes an issue where a Tween that used a custom ease
callback would glitch when the final value was set, as it would be set outside of the ease callback. It's now passed through it, no matter what. Fix #6939
This commit is contained in:
parent
ec42bd5aba
commit
f9d1b4d5cf
1 changed files with 18 additions and 28 deletions
|
@ -305,14 +305,28 @@ var TweenData = new Class({
|
||||||
this.progress = progress;
|
this.progress = progress;
|
||||||
this.previous = this.current;
|
this.previous = this.current;
|
||||||
|
|
||||||
|
if (!forward)
|
||||||
|
{
|
||||||
|
progress = 1 - progress;
|
||||||
|
}
|
||||||
|
|
||||||
|
var v = this.ease(progress);
|
||||||
|
|
||||||
|
if (this.interpolation)
|
||||||
|
{
|
||||||
|
this.current = this.interpolation(this.interpolationData, v);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.current = this.start + ((this.end - this.start) * v);
|
||||||
|
}
|
||||||
|
|
||||||
|
target[key] = this.current;
|
||||||
|
|
||||||
if (complete)
|
if (complete)
|
||||||
{
|
{
|
||||||
if (forward)
|
if (forward)
|
||||||
{
|
{
|
||||||
this.current = this.end;
|
|
||||||
|
|
||||||
target[key] = this.end;
|
|
||||||
|
|
||||||
if (this.hold > 0)
|
if (this.hold > 0)
|
||||||
{
|
{
|
||||||
this.elapsed = this.hold;
|
this.elapsed = this.hold;
|
||||||
|
@ -326,33 +340,9 @@ var TweenData = new Class({
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.current = this.start;
|
|
||||||
|
|
||||||
target[key] = this.start;
|
|
||||||
|
|
||||||
this.setStateFromStart(diff);
|
this.setStateFromStart(diff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!forward)
|
|
||||||
{
|
|
||||||
progress = 1 - progress;
|
|
||||||
}
|
|
||||||
|
|
||||||
var v = this.ease(progress);
|
|
||||||
|
|
||||||
if (this.interpolation)
|
|
||||||
{
|
|
||||||
this.current = this.interpolation(this.interpolationData, v);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.current = this.start + ((this.end - this.start) * v);
|
|
||||||
}
|
|
||||||
|
|
||||||
target[key] = this.current;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.dispatchEvent(Events.TWEEN_UPDATE, 'onUpdate');
|
this.dispatchEvent(Events.TWEEN_UPDATE, 'onUpdate');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue