将LayerColor添加到Node时,this._parent.reorderChild不是函数

时间:2016-02-22 14:41:09

标签: cocos2d-iphone cocos2d-x cocos2d-js

这里是cocos2d Javascript函数

spawnGrid: function(x,y) {
    var newGrid = cc.instantiate(this.gridPrefab).getComponent('Grid');
    this.gameArea.addChild(newGrid.node);
    newGrid.init(x,y,10);

    var width = 75;
    var height = 75;
    var backgroundLayer = new cc.LayerColor(cc.Color.RED,width,height);
    this.gameArea.addChild(backgroundLayer);
    backgroundLayer.setPosition(cc.p(width * 0.5, height * 0.5));
}

此行执行时

this.gameArea.addChild(backgroundLayer);

控制台显示此错误

Uncaught TypeError: this._parent.reorderChild is not a function

任何想法?

1 个答案:

答案 0 :(得分:0)

这可能会迟到,但供将来参考,

我在尝试在空节点(960 x 460)上绘制一条简单的线时遇到了同样的错误。经过30分钟的挫折之后,我发现有一个内部的 _sgNode 显然可以解决问题。它可能不是最好的解决方案,因为它是一个内部对象,可能会改变......

因此,在您的情况下,临时解决方法是使用

访问原始节点
this.gameArea._sgNode.addChild(backgroundLayer)

我希望这会有所帮助