新手又来提问了

源码如下:
cc.Class({
extends: cc.Component,

properties: {
    lbn:{
        default:null,
        type:cc.Label
    },
    touxiang:{
        default:null,
        type:cc.Sprite
    },
    tupian:{
        default:[],
        type:cc.SpriteFrame
    }
},
onLoad: function () {
    function gettouxiang(min,max){
    var ma=cc.random0To1();
    return min+Math.floor((max-min)*ma);
    }
    var maa=gettouxiang(1,this.tupian.length);
    this.lbn.String=maa.toString();
    this.touxiang.SpriteFrame=this.tupian[maa];
    cc.log(this.lbn.String);
    cc.log(this.touxiang.SpriteFrame);
},

});

控制台log如下:
6(未知)
Object { _name: “6”, _objFlags: 0, _rawFiles: null, _capturingListeners: null, _bubblingListeners: null, _rect: Object, _offset: Object, _originalSize: Object, _rotated: false, insetTop: 0, 等 7 项… }

控制台log说明label和Sprite的值都已经改变了,为什么更新label的string和Sprite新的图片?

  1. this.touxiang.spriteFrame,spriteFrame的s要小写。
  2. JS数组从0开始到length-1结束,你可能想要的是:
    var maa=gettouxiang(0, this.tupian.length);
1赞

实在谢谢,好几年没有做软件了,很多都已经不会了
还好这个论坛上愿意帮助人的好人很多