一个List的数组头像地址来设置SpriteFrame

cc.Class({
extends: cc.Component,

properties: {        
    headPic: cc.Sprite,
    nickName: cc.Label,
    geshuNum: cc.Label,
    dianshuNum: cc.Sprite              
},

init: function (data) {        
    this.headPic.Sprite = data.headPic;
    this.nickName.string = data.nickName;        
    this.geshuNum.string = data.geshuNum;
    this.dianshuNum.Sprite = data.dianshuNum;
},

onLoad: function () {

}

});


cc.Class({
extends: cc.Component,
properties: {
itemPrefab:cc.Prefab,
},

onLoad: function () {
    var allCount = 5;
    var datalist = {};    
    var _this = this;

    for (var i = 1; i <= allCount; i++) {

        var imageUrl = cc.url.raw("image/resources/09.png");
        var resutUrl = cc.url.raw("image/resources/20.png");

        var OverList = cc.instantiate(this.itemPrefab);
            this.node.addChild(OverList);

            OverList.getComponent('overlistItem').init({ 
                headPic: _this.getImage(resutUrl),
                nickName: '用户: '+i+'号',
                geshuNum: i,
                dianshuNum: resutUrl 
            });
    }
},


getImage(resutUrl){
    cc.loader.loadResAll("image/resources", function (err, texture) {
        var texture = cc.textureCache.addImage(resutUrl);
        return texture.url;
    });  
}

});

怎么For循环的方式将头像换成不同的图像背景。

什么意思? = =。。。
没看懂唉

他想在OverList.getComponent(‘overlistItem’).init的时候把headPic设置成_this.getImage(resutUrl)。但是getImage里面是异步的,没有返回值。早上本来想帮他改,后来没时间。


for (var i = 1; i <= allCount; i++) {

    var imageUrl = cc.url.raw("image/resources/09.png");
    var resutUrl = cc.url.raw("image/resources/20.png");

    (function (num) {
        var OverList = cc.instantiate(this.itemPrefab);
        this.node.addChild(OverList);

        _this.getImage(resutUrl, num, function (img) {
            OverList.getComponent('overlistItem').init({ 
                headPic: img,
                nickName: '用户: '+num+'号',
                geshuNum: i,
                dianshuNum: resutUrl 
            });
        })

    })(i);
        
}


你是要大概这种异步的么?

getImage 改一下,传一个 num 进去,根据 num 去取指定的图片,然后返回回来?
这边只需要一个匿名函数包起来 i 值就是正常的了~~

不知道你要的是不是这个 = =。。。

1赞