新人请教图片如何动态替换

初学cc,用的1.33,动态替换图片的时候,碰到问题,请赐教

  1. 在层级管理器新建一个SpriteFrame命名为HeadImg,设置好默认本地assets里面的图片
    预览正常

  2. 在Canvas挂载的js里面声明:
    properties: {
    HeadImg:{
    default:null,
    type:cc.SpriteFrame,
    },
    },

    onLoad: function () {
    this.HeadImg.spriteFrame.setTexture(“http://www.xxxxx.com/xxxx.jpg”);
    },

  3. 运行时出错:
    Simulator: 217:TypeError: this.HeadImg is null

请问 我的sprite如何实例化,以及网络图片是否可以这么使用

在线等…

cc.loader.load(url,func)

http://www.cocos.com/docs/creator/api/classes/loader.html#property_loader

cc.loader.load(“http://www.xxxxx.com/xxxx.jpg”, function(err, texture){
var sprite = this.HeadImg.getComponent(cc.Sprite);
sprite.spriteFrame = new cc.SpriteFrame(texture);
});
改成这样了,报错Simulator: 217:TypeError: this.HeadImg is undefined
没有实例化

不知道怎么实例化

请指教

1赞

js
全局严格模式,匿名函数内部this是undefine

sprite.spriteFrame = new cc.SpriteFrame(texture);这一句改成
spriteFrame.setTexture(texture)
补充:还忘了匿名函数里面的this不是外部的this,改成
var self = this;
cc.loader.load(“http://www.xxxxx.com/xxxx.jpg”, function(err, texture){
var sprite = self.HeadImg.getComponent(cc.Sprite);
spriteFrame.setTexture(texture);
});

新手请教 如果是本地图片的话 用那个api调用呢