从 treejs AnimationMixer 中删除 EventListener

remove EventListener from treejs AnimationMixer

我有一个 AnimationMixer,我想在动画结束时附加一些逻辑。
正如文档所指示的那样——我在混音器上使用了 addEventListener,它工作正常,
但是当我试图删除监听器时它不起作用。
(我也尝试查看 hasEventListener 是否有效,但没有成功。)

简而言之-
addEventListener 的日志正在运行
但是 removeEventListener 和 hasEventListener 没有。
我错过了什么?我找不到任何解释。
非常感谢任何帮助...

            this.animationMixer = new THREE.AnimationMixer(gltf.scene);

            this.animationMixer.hasEventListener('finished', (e) => {
              console.log('hasEvent', e); // doesn't print
            });

            this.animationMixer.addEventListener('finished', (e) => {
              console.log('done'); // prints
              this.animationMixer.removeEventListener('finished', (e) => {
                console.log('removed'); // doesn't print
              });
            });

RemoveEventListener() accepts a second argument 知道要删除哪个事件,但删除时不会触发该功能。另外,每次应该是相同的功能,而不是新的:

function hasFinished() {
    console.log(“Finished”);
}

let value = this.animationMixer.hasEventListener('finished', hasFinished);
console.log(value); // false

// Add event listener
this.animationMixer.addEventListener('finished', hasFinished);

value = this.animationMixer.hasEventListener('finished', hasFinished);
console.log(value); // true

// Remove listener
this.animationMixer.removeEventListener('finished', hasFinished);

现在该函数将在“完成”事件自行发生时触发。它不会在添加或删除事件侦听器时被触发。