0

如果在 loadScene() 回调函数上使用 bind,getScene() 信息不正确。

从入口场景切换到大厅场景后,我将进行后期处理。

它是使用 typeScript 实现的。

Entry.ts
cc.director.loadScene('Lobby', this.postProcessLobby.bind(this)(isRelogin));

在此处输入图像描述

控制台窗口中 cc.director.getScene() 的值表明 'Entry' 'Lobby' 是正确的,因为它是在切换场景后调用的。

另一个例子是使用箭头函数来获得我想要的结果。

Entry.ts
cc.director.loadScene('Lobby', e => this.postProcessLobby(isRelogin));

在此处输入图像描述

cc.director.getScene() 中的值表示“大厅”,大厅变量的值看起来正常。

我更喜欢将 bind() 用于异步回调处理,并且写得很好,没有问题。但是,loadScene() 没有得到想要的结果。这到底是什么?场景是否在没有切换的情况下回调?还是有其他问题?

4

1 回答 1

0

您的第一个代码片段this.postProcessLobby.bind(this)使用参数调用isRelogin并将返回值作为第二个参数传递给loadScene. 你说的应该不是这个意思。您可以使用this.postProcessLobby.bind(this, isRelogin)生成一个回调,该回调将isRelogin预先添加到调用它的参数列表中,这应该适用于您的情况,因为看起来您的postProcessLobby实现忽略了额外的参数,但箭头函数对我来说似乎是明确的解决方案。

于 2018-09-05T03:26:51.870 回答