Cocos creator中出现Uncaught TypeError: Cannot read property 'node' of undefined

   最近在学习Cocos creator开发cocos游戏,总体感觉比较好,但是由于cocos creator开发游戏主要使用JavaScript开发的,所以很多语法都不是很清楚,所以就出现了一些问题。

  今天在动态加载resources文件夹下的图片资源就出现了一些问题,根据官方文档进行资源的动态加载:

 

// 加载 SpriteFrame
cc.loader.loadRes("test assets/image", cc.SpriteFrame, function (err, spriteFrame) {
    this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
});

 

然而却出现浏览器报错如下:

 

Uncaught TypeError: Cannot read property 'node' of undefined
    at OnePersonScene.js:143
    at CCLoader. (CCLoader.js:446)
    at CCLoader.js:238
    at utils.js:85

刚开始根据报错的提示,以为是这个节点没有定义,但是检查编辑器发现这个节点貌似没问题,可是就是这样报错的,没办法就把这个节点删除了重新添加,可是运行之后仍然是这个问题,然后就感觉可能是错误提示的有问题,问题可能不是因为这个节点没有定义,只好从别的方面入手,然后我就对着官方给的文档一个字母一个字母的对照终于发现了一个问题,官方文档如下:

 

 

// 加载 SpriteFrame
var self = this;
cc.loader.loadRes("test assets/image", cc.SpriteFrame, function (err, spriteFrame) {
    self.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
});

然后发现问题在于官方文档在函数体外定义一个变量 var self = this;但是我却是直接在函数体中直接使用this,唯一的不同就在这里,可能这就是问题,修改之后再运行,果然没有问题了,可是不明白为什么要这么做,在网上也没找到答案,有点小纠结~不过好在错误解决了,还是有点收获的,以后记得注意~

 

PS:给大家分享一个优惠券网站,券券猫-领券购买更省钱(www.qquanmao.cn)
 

 

你可能感兴趣的:(cocos,creator)