[已解决] 又是我,制作动态生成内容的列表没有显示

我照着官方文档做的:制作动态生成内容的列表 http://www.cocos.com/docs/creator/ui/list-with-data.html

代码:

//---------------------------------------------ItemList.js---------------------------------------------------

var Item = cc.Class({
    name: 'Item',
    properties: {
        id: 0,
        itemName: '',
        itemPrice: 0,
        iconSF: cc.SpriteFrame
    }
});

cc.Class({
    extends: cc.Component,
    properties: {
        items: {
            default: [],
            type: [Item]
        },
        itemPrefab: cc.Prefab
    },

    // use this for initialization
    onLoad () {
        for (var i = 0; i < this.items.length; i++) {
            var item = cc.instantiate(this.itemPrefab);
            var data = this.items[i];
            this.node.addChild(item);
            item.getComponent('ItemTemplate').init({
                id: data.id,
                itemName: data.itemName,
                itemPrice: data.itemPrice,
                iconSF: data.iconSF
            });
        }
        cc.log('length = '+ this.items.length);
        for (var value in this.items) {
                var element = this.items[value];
                cc.log(value + "=====" + JSON.stringify(element));
            }
      
    },

    // called every frame, uncomment this function to activate update callback
    // update: function (dt) {

    // },
});

//---------------------------ItemTemplate.js---------------------------------------------

cc.Class({
    extends: cc.Component,
    properties: {
        id: 0,
        icon: cc.Sprite,
        itemName: cc.Label,
        itemPrice: cc.Label
    },
    
    init: function (data) {
        this.id = data.id;
        this.icon.spriteFrame = data.iconSF;
        this.itemName.string = data.itemName;
        this.itemPrice.string = data.itemPrice;
        cc.log('data2 = '+JSON.stringify(data));
    },

    // use this for initialization
    onLoad: function () {

    },
    // called every frame, uncomment this function to activate update callback
    // update: function (dt) {

    // },
});

但是做出来没有任何显示,这是怎么回事?我所有操作都是照文档操作的

以下是我自己打的log

Simulator : ------------------------------------------------
Simulator : Cocos2d-JS v3.10
Simulator : iShow!
Simulator : data2 = {“id”:0,“itemName”:“aaa”,“itemPrice”:100,“iconSF”:{"_name":“PurpleMonster”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/PurpleMonster.png”,"_texture":{"_uuid":“f3d4a3ec-1d7a-4009-9dae-075cb5cd9691”},"_uuid":“aff3cf4d-becf-4f21-8513-268bbed42102”}}
Simulator : data2 = {“id”:1,“itemName”:“bbb”,“itemPrice”:200,“iconSF”:{"_name":“btn_play”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/btn_play.png”,"_texture":{"_uuid":“96755763-4358-4cb0-8f75-898e13705c35”},"_uuid":“a0fc0b7a-c61c-43c7-9793-0eee6237695a”}}
Simulator : data2 = {“id”:2,“itemName”:“ccc”,“itemPrice”:300,“iconSF”:{"_name":“star”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/star.png”,"_texture":{"_uuid":“9246b9da-dcbb-4331-a7c4-3f72f8fdd682”},"_uuid":“f091d70e-8bb3-4edc-b973-5a5ee4e3836d”}}
Simulator : length = 3
Simulator : 0====={“id”:0,“itemName”:“aaa”,“itemPrice”:100,“iconSF”:{"_name":“PurpleMonster”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/PurpleMonster.png”,"_texture":{"_uuid":“f3d4a3ec-1d7a-4009-9dae-075cb5cd9691”},"_uuid":“aff3cf4d-becf-4f21-8513-268bbed42102”}}
Simulator : 1====={“id”:1,“itemName”:“bbb”,“itemPrice”:200,“iconSF”:{"_name":“btn_play”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/btn_play.png”,"_texture":{"_uuid":“96755763-4358-4cb0-8f75-898e13705c35”},"_uuid":“a0fc0b7a-c61c-43c7-9793-0eee6237695a”}}
Simulator : 2====={“id”:2,“itemName”:“ccc”,“itemPrice”:300,“iconSF”:{"_name":“star”,“insetTop”:0,“insetBottom”:0,“insetLeft”:0,“insetRight”:0,"_textureFilename":“E:/start_project/assets/textures/star.png”,"_texture":{"_uuid":“9246b9da-dcbb-4331-a7c4-3f72f8fdd682”},"_uuid":“f091d70e-8bb3-4edc-b973-5a5ee4e3836d”}}

赋值和init是成功了的,但是没有任何显示

@linshun @wangzhe @panda @zilong @jare

:joy: 你们不会怪我啰嗦吧,老是有那么多问题

start_project.zip (356.5 KB)

这是我的项目文件:sweat_smile:

很简单,因为没有设置 item 的位置,他们存在,只是你看不见,你设置一下 x, y 属性就能看见了

:watermelon:谢谢你了,因为按照文档来,而且第一次弄,这么简单的问题我都不知道

新人求教,在使用官网动态生成内容的列表基础上,怎么动态添加新对象到items数组里,尝试过多找办法无论如何他都说有一个已经有一个同名的类,或者没有初始化,或者属性为空等等
``
以下是我的代码:
var itd=require(‘gun’); //放在了文件头
itd.items[item.length].id=_this.id;
itd.items[item.length].itemName=_this.itemName;
itd.items[item.length].iconSF=_this.iconSF;
itd.items[item.length].length++;

gun.js
var Item = cc.Class({
name: ‘Item’,
properties: {
id: 0,
itemName: ‘’,
//itemPrice: 0,
iconSF: cc.SpriteFrame,
itemPrefab: cc.Prefab,
}
});

cc.Class({
extends: cc.Component,
properties: {
items: {
default: [],
type: Item,
},
state:{
default:null,
type:cc.Node,
}
},
……
module.export={
items:this.items,
}
不是很会发帖子,请见谅555