关于组件里的this.node的疑问?

this.node不是指向场景里当前组件的节点吗,为什么在场景里创建的Sprite节点,也添加了图片(spriteFrame),然后给这个Sprite节点添加的组件里使用this.node却没有spriteFrame属性。

要怎样在组件里改变当前节点的spriteFrame?

this.getComponent(cc.Sprite).spriteFrame = yourSpriteFrame

这个和你在properties中引入节点时设置的type有关

如果是这样设置

properties: {
    mainSprite: {
        default: null,
        type: cc.Node
    },

则this指的为Node组件,获取spriteFrame应为this.mainSprite.getComponent(cc.Sprite).spriteFrame

如果是这样设置

properties: {
    mainSprite: {
        default: null,
        type: cc.Sprite
    },

则this指的为Sprite组件,获取spriteFrame应为this.mainSprite.spriteFrame

因为Sprite也是node的一个组件

理解了,所以说Sprite不是继承自Node,而是Node的一个装饰器,一个组件。

之前没看这个文档。
http://www.cocos.com/docs/creator/content-workflow/node-component.html

:sweat: