Quantcast
Channel: Cocos中文社区 - 最新帖子
Viewing all articles
Browse latest Browse all 495283

自己用creator一个月的心得,特贡献代码来了

$
0
0

恕我直言看不懂你这样做的意义, javascript语言本身就可以实现你想要的功能, 你可以看看Function.prototype.bind函数的用法

Item.js的修改

onClickItem1: function(){
     this._onClickHandler([this._data + "1"]);
},

onClickItem2: function(){
     this._onClickHandler([this._data + "2"]);
},

setOnClickHandler: function(handler){
    this._onClickHandler = handler;
}

Main.js的修改

// use this for initialization
onLoad: function () {
    for(var i = 0; i < 15; i++){
        var item = cc.instantiate(this.item);
        if(item) {
            var script = item.getComponent("Item"); 
            script.setData(i);
            // var cb = new CallFunc();
            // script._cb = cb.handle(this.onClickBtn, this, null);
            script.setOnClickHandler(this.onClickBtn.bind(this, "this is a binded data"));
            this.scrollerView.content.addChild(item);
        } 
    }
},

// dataBinded是通过bind增加的参数, data是调用回调的时候传入的参数
onClickBtn(dataBinded, data){
    this.label.string = "点击了按钮: " + dataBinded.toString() + data.toString();
    var item = cc.instantiate(this.msg);
    this.node.addChild(item);
    var script = item.getComponent("Msg");
    script.setData(data);
}

Viewing all articles
Browse latest Browse all 495283

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>