this._parent.reorderChild не является функцией при добавлении LayerColor к узлу

вот функция 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

Есть идеи?


person Siu Chung Chan    schedule 22.02.2016    source источник
comment
Можете ли вы также показать нам инициализацию gameArea? Просто отредактируйте начальный пост   -  person Роман Гуйван    schedule 23.02.2016


Ответы (1)


Это может быть поздно, но для дальнейшего использования,

Я столкнулся с той же ошибкой при попытке нарисовать простую линию над пустым узлом (960 x 460). После 30 минут разочарования я обнаружил, что есть внутренний _sgNode, который, по-видимому, делает свое дело. Это может быть не лучшее решение, так как это внутренний объект и может измениться...

Итак, в вашем случае временная работа будет заключаться в доступе к исходному узлу с использованием

this.gameArea._sgNode.addChild(backgroundLayer)

надеюсь, это поможет

person MimiEAM    schedule 23.05.2016