[BUG] Action 造成内存泄漏

Creator 1.3.2 版本下,使用 cc.callFunc 之后好像会一直持有引用,导致内存泄漏,比如:

 runAction() {
        cc.log('runAction');
        this.node.runAction(cc.sequence(
            cc.fadeIn(0.5),
            cc.callFunc(this._afterAction, this)
        ));
    },

    _afterAction() {
        cc.log('_afterAction');
    }

目前只能采用不是很安全的做法,比如使用外部引用,在回调之后进行释放:

        let self = this;
        this.node.runAction(cc.sequence(
            cc.fadeIn(0.5),
            cc.callFunc(() => {
                self._afterAction();
                self = null;
            })
        ));

引擎开发人员可以查看下面的 demo ,希望能够尽快解决方便我们的项目上线,谢谢。HelloWorld.zip (610.2 KB)

不好意思,其实 cc.Action 没有问题,只是 destroy 组件是不够的,需要 destroy 根节点。

1赞