Complete
only fires when an animation finishes playing to its full duration, and in the case of looping, in each loop.
Cases include:
- the end of each loop, and
- when an animation finishes playing.
End
fires the same cases as Complete but also when an Animation is changed or gets interrupted, even if it doesn't finish playing its full duration.
Cases include:
- the end of one loop,
- when an animation finishes playing,
- when an animation is changed midway, or
- when an animation is stopped/cleared.
Bonus info:
Because of this, End
is a bit dangerous. You should never bind a function that calls SetAnimation
on End
. It'll do an infinite recursion (and cause a stack overflow) because SetAnimation causes End
to fire when it interrupts a currently playing animation. It's fine to do it with Complete
and Start
.
In some ways, it's a bit of a misnomer because End
fires even if it doesn't reach the end of the animation. :p