初学creator,咨询一个入门问题

为什么我用new cc.SpriteFrame(cc.url.raw(‘resources/PurpleMonster.png’));动态创建精灵,运行时界面展示不了精灵。
而用sp.spriteFrame = this.blockSprite;就可以(blockSprite的图片是在编辑器上绑定好的)?

详细代码如下:
cc.Class({
extends: cc.Component,

properties: {
    blockSprite: {
        default: null,
        type: cc.SpriteFrame
    },
},

onLoad: function () {
    var node = new cc.Node('Sprite');
    var sp = node.addComponent(cc.Sprite);
    //sp.SpriteFrame=new cc.SpriteFrame(cc.url.raw('resources/PurpleMonster.png'));

    sp.spriteFrame = this.blockSprite;
    node.setPosition(0,400);
    node.width = 400;
    node.height = 400;
    this.node.addChild(node);
}

});

cc.SpriteFrame 是表示的这张纹理,而不是表示这个图片对象

你的是sp.SpriteFrame=
要sp.spriteFrame=

不好意思是我粗心了,再请教一下,这种动态创建的精灵,怎么设置大小?我直接设置node.width和node.height没有效果。

let tnode = new cc.Node()
let lay1 = tnode.addComponent( cc.Layout )
let lay2 = tnode.addComponent( cc.Sprite )
lay2.spriteFrame = new cc.SpriteFrame( cc.url.raw(‘resources/img_crocodile_1.png’) )
//这里需要设置一下,自定义的尺寸才会生效
lay2.sizeMode = cc.Sprite.SizeMode.CUSTOM
lay2.node.width = 400
lay2.node.height = 200
layout123.addChild( tnode )

文档里的这个这个,只针对在编辑器里操作。。。
动态创建的要手动设置一下

setContentSize