任何东西都可以顺利运行,直到浏览器选项卡闲置几分钟。当我返回窗户时,场景出现冻结,机器人停止动画。 我的动画循环在班级中:

问题描述 投票:0回答:0
this.time.on('tick', () => { this.update(); }); update() { const deltaTime = this.time.delta; this.world.update(deltaTime); this.camera.update(); this.renderer.update(); }

更新是:

World.js

inside the

update(deltaTime) {
        if (this.box) {
            this.box.update(deltaTime)
        }
        if (this.robot) {
            this.robot.update(deltaTime)
        }
    }

Box.js

update(deltaTime) {
        if (this.mixer) {
            this.mixer.update(deltaTime)
        }
    }

Robot.js

动作更新:

update(deltaTime) { if (this.tamagotchiController) { this.tamagotchiController.update(deltaTime) } }
最终是:

更新是:

TamagotchiController.js

update(deltaTime) { if (this.mixer) { this.mixer.update(deltaTime); } }

Camera.js

实时项目是

我不知道会发生什么问题,因为控制台上没有出现错误。

项目中使用的是:

update() { if (this.controls) { this.controls.update() } }
    

文档中指出:

RequestanimationFrame()调用在运行时大多数浏览器都会暂停
在背景选项卡或隐藏的标签中,以改进
性能和电池寿命。

,这就是动画首先停止的原因。 到达三级可能存在问题。经过几分钟的闲置,三分钟变成了几分钟。 requestAnimationFrame()将在返回选项卡之后恢复,mixer.update()将获得3-5分钟的三角洲,这可能会破坏动画。 可见性api

可以帮助您处理三角洲:

Renderer.js

或类似的东西


javascript browser three.js webgl
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.