Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript this.addChild不是cocos2d js函数_Javascript_Cocos2d Js - Fatal编程技术网

Javascript this.addChild不是cocos2d js函数

Javascript this.addChild不是cocos2d js函数,javascript,cocos2d-js,Javascript,Cocos2d Js,我是cocos2djs新手,我想简化我的代码,但我在代码方面遇到了问题 var GameLayerEasy = cc.Layer.extend({ ctor:function () { // 1. super init first this._super(); this.addBG4(); }, addBG4: function(){ var size = cc.director.getWinSize(); var sprite = new cc.S

我是cocos2djs新手,我想简化我的代码,但我在代码方面遇到了问题

var GameLayerEasy = cc.Layer.extend({

ctor:function () {
    // 1. super init first
    this._super();

    this.addBG4();
},

addBG4: function(){
    var size = cc.director.getWinSize();
    var sprite = new cc.Sprite.create(res.BG4_png);
    sprite.setPosition(size.width / 2, size.height / 2);
    this.addChild(sprite, 0);
}
});
这段代码没问题,但我有很多游戏层实例,使用相同的addBG4,如果我在每个游戏层中都再次键入addBG4函数,则效率不高,因此我尝试像这样更改代码

var GameLayerEasy = cc.Layer.extend({
ctor:function () {
    // 1. super init first
    this._super();

    addBG4();
},
});

function addBG4(){
    var size = cc.director.getWinSize();
    var sprite = new cc.Sprite.create(res.BG4_png);
    sprite.setPosition(size.width / 2, size.height / 2);
    this.addChild(sprite,0);
}
但是我得到了这个错误。addChild不是一个函数 有人能帮我写代码吗?请告诉我这有什么问题,谢谢

  function addBG4(){
    var size = cc.director.getWinSize();
    var sprite = new cc.Sprite(res.BG4_png);
    sprite.setPosition(size.width / 2, size.height / 2);
    this.addChild(sprite,0);
  }
我想现在, 我正在这样尝试,我的代码正在运行

var GameLayerEasy = cc.Layer.extend({
    ctor:function () {
    this._super();

    addBG4(this);
},
});

function addBG4(that){
    var size = cc.director.getWinSize();
    var sprite = new cc.Sprite.create(res.BG4_png);
    sprite.setPosition(size.width / 2, size.height / 2);
    that.addChild(sprite,0);
}

这只是一个JavaScript问题。没什么关系。在第一个示例中,“this”代表GameLayerEasy实例,而在第二个示例中,它是全局的,即窗口对象。@ПаааааГааааа感谢您的解释。但我仍然对此感到困惑谢谢你的帮助,我正试图根据你的建议修改我的代码,但我仍然有错误,因为sprite不是构造函数,因为它要么是新的cc.Spriteres.BG4\u png;或抄送。精灵。创建。。。我已经提交了一个编辑。另外,不需要addChild调用中的“新”部分,以及最后一部分-这不会解决范围问题。@ММаааГааааааааааааа。