自定义 cc.Node 子节点的奇怪的显示偏移问题

cocos2d-js v3.16, webGL 模式, chrome,firefox,safari。

非常奇怪的问题,下面描述一下出现的方法,使用 cocos2d-js v3.16 自带的 js-test 就可以实现。

打开 test-main.js 文件,添加一个自定义的 cc.Node :

var MyNode = cc.Node.extend({
    ctor:function() {
        this._super();
        //
        for (var i = 0; i < 20; i++) {
            var node = new cc.Sprite("Images/grossini.png");
            this.addChild(node);
        }
    }
});

然后,利用一下自带例子里的右上角的关闭按钮:

onCloseCallback:function () {
    var node = new MyNode();
    node.setPosition(300, 300);
    this.addChild(node);
},

然后,运行,点击关闭按钮 (gif 中,鼠标一直慢慢的,一下一下的点击右上角的关闭按钮):

可以看到,随着慢慢的点击,每一下点击,关闭按钮都会向着右上方移动,添加的图片,也会慢慢的偏移掉。

不用按钮点击的形式,直接在 ctor 中,尝试一下代码:

var self = this;
    this.schedule(function() {
    var node = new MyNode();
    node.setPosition(300, 300);
    self.addChild(node);
}, 0.1, 500, 0);

效果也是一样的,关闭按钮和添加的node 内容会慢慢偏移。

把 MyNode 中的 for 循环次数降低,循环次数越少,偏移就越慢发生,就是说需要创建更多的 MyNode 才看得出偏移。

很奇怪的问题,希望官方能看一下。