Aframe A帧/动画:如何暂停和恢复?

Aframe A帧/动画:如何暂停和恢复?,aframe,Aframe,我在aframe(ar.js)中有一个360°旋转动画,我想暂停并继续它,而我所能做的就是暂停,但从头开始重新启动 <a-entity> <a-entity gltf-model="#tree-gltf"> </a-entity> <a-animation begin="rotation-begin" end="rotation-end" attribute="rot

我在aframe(ar.js)中有一个360°旋转动画,我想暂停并继续它,而我所能做的就是暂停,但从头开始重新启动

<a-entity>
    <a-entity
        gltf-model="#tree-gltf">
    </a-entity>
    <a-animation
        begin="rotation-begin"
        end="rotation-end"
        attribute="rotation"
        to="0 360 0"
        direction="alternate"
        dur="10000"
        repeat="indefinite">
    </a-animation>
</a-entity>
允许访问“开始”和“结束”事件,但“开始”从开始重新启动,而不是暂停时从当前值重新启动

允许访问pause()和play(),两者相同。如果存在“begin”属性,则Play()根本不起作用,因此您必须在事件或函数之间进行选择。 但是play()也会从一开始就重新启动动画,而不是从动画暂停的地方

我还尝试了一个丑陋的把戏,将属性“dur”设置为1小时以减慢动画速度,使其看起来像是暂停了,但将“dur”设置为10秒不会重新启动动画


有什么想法可以帮上忙吗?

使用Kevin Ngo的
动画组件
可以帮上忙,因为它正确地支持暂停/恢复

除了包含组件外,您的代码如下所示:

<a-entity
    animation="property:rotation; startEvents:rotation-begin; pauseEvents: rotation-pause; resumeEvents: rotation-resume; to:0 360 0; dir:alternate; dur:10000; repeat:indefinite"
    gltf-model="#tree-gltf">
</a-entity>

您是否尝试在动画中使用
fill=forwards
?这可能会在动画暂停之前设置新值,因此在动画再次重新启动时不会重置。否则,您可能可以将“填充”与另一个动画一起使用。默认值为“填充=前进”,因此为“是”。我还尝试了所有其他值,但没有成功,因为它定义了帧停止/暂停后的位置,而不是重新启动时的操作。无论如何,谢谢。非常感谢,我错过了Aframe/动画文档的顶部。它完成了我将“repeat:unfinite”替换为“loop:true”并使用restartEvents的工作。