Cc.instantiate(this.item);的问题

var content = this.scroll.getChildByName(“view”).getChildByName(“content”).getChildByName(“content”);
content.removeAllChildren();
var roomArr = room.data.aRoomlist;
for (var i = 0; i < roomArr.length; i++) {
var item = cc.instantiate(this.item);
content.addChild(item);
item.getComponent(“RoomItem”).updateData(roomArr*);
}

想做个列表,根据返回数据条数显示ITEM 的个数,RoomItem 为this.item的自定义类,对应 的updateData方法
updateData:function(data)
{

    var roomdata =  require("RoomData");
    var roomvo = roomdata.getRoomInfo(data);

    this.node.getChildByName("id_name").getComponent(cc.Label).string = data + "/" + roomvo.name;
    this.node.getChildByName("blind").getComponent(cc.Label).string = roomvo.s_blind + "/" + roomvo.b_blind;
    var people = this.node.getChildByName("people");
    people.getComponent(cc.Label).string = "  " +data + "/" + roomvo.max_player;
    if (data == roomvo.max_player)
    {
        var realUrl = cc.url.raw("textures/hall/gamehall/player-number-hot.png");
       
        var texture = cc.textureCache.addImage(realUrl);
        var plyaer = people.getChildByName("peoplestutas1");
        plyaer.getComponent(cc.Sprite).spriteFrame.setTexture(texture);

}

测试发现的问题,ITEM 里plyaer.getComponent(cc.Sprite).spriteFrame 没有图片及时更换,并且改变被复制的this.item,下次再次复制this.item时图片自动变成红色的了*

能更换却没有及时更换,有可能是因为textureCache加载纹理的过程中 setTexture就发生了 可以试一下将addImage之后的代码都放到一个匿名函数内作为addImage的第二个参数做为回调。

还有个问题他会改变 被复制 this.item。我只想this.item作为库,