Yes~
I take the “AnimationClip Code” outside of the click event handler, the Problem in CodePen-2 solved.
And I found the key point of the Problem in CodePen-1 above now.
I pause the AnimationAction, and set the time of Mixer,
But… I forgot something about the clock. (let clock = new THREE.Clock())
While the animation is playing, clock running a tiny step in requestAnimationFrame, let delta = clock.getDelta() get a tiny number such as 0.016 …
While the animation is paused, the clock is still running !
Replay the animation after pause it in some seconds, the time of the clock move forward by the same seconds.
So getting the time interval by clock.getDelta() will return a big step like 2.53,
which makes the animation jumping a big step discontinuously.
(by mixer.update(delta))