Cocos creatorにUncauthtType Error:Cannot read property'node'of undefinedが表示されます

1475 ワード

最近はCocos creatorを勉強してcococosゲームを開発しているので、全体的にいい感じですが、cococos 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)