Cocoscreator评论功能的制作

Cocoscreator如何制作评论的功能

一、从服务器接受到的json串进行解析读取,我的上一篇博客已经介绍了怎么操作。
二、在creator中制作一个预制体,内容大致是你设计的评论是什么样子(头像,昵称,时间,评论内容等)
注意:预制体要放在resources文件夹里面在这里插入图片描述三、对预制体添加一些自己需要的组件,然后用cc.loader.loadres将其加载出来,再用cc.instantiate()将其实例化出来。接下来就可以通过代码对其进行操作了。

//加载输入框的预制体
         cc.loader.loadRes("EDbox",cc.Prefab,function(err,box){
            var pl=cc.find("Canvas/scroll/view/content");
            var shuru=cc.instantiate(box);   //实例化
            shuru.name="btn";
            shuru.anchorX=0.5
            shuru.anchorY=0.5           //设置锚点
            pl.addChild(shuru);        //p1节点为其父节点
            })

四、将接收到的json格式的数据填进预制体中,因为加载预制体是异步加载,所以写在同一个代码里面会出问题,我是这么解决的:
1、将接受的json数据填进实例化后的预制体中的操作写成一个函数,然后导入为插件
在这里插入图片描述


```javascript
function one(i){
    //在场景加载时请求数据
    var y=jieshou("http/liqi/mp3")
  
    var obj = JSON.parse(y); 
    cc.log(obj)
    let result=obj.result
    cc.log(result);    
       var m=result[i]
       cc.log(m);
       var Comment=result[i].Comment;
       var PictureNumber=result[i].PictureNumber;
       var PersonalNickName=result[i].PersonalNickName;
       var CommentTime=result[i].CommentTime
       cc.log(Comment,PictureNumber,PersonalNickName,CommentTime)
    
       cc.loader.loadRes("EDbox",cc.Prefab,function(err,pre){
        //加载预制体,添加进content
        var p2=cc.find("Canvas/scroll/view/content");
        var BetweenShuru=cc.instantiate(pre);
       // BetweenShuru.name="BTS";
        BetweenShuru.anchorX=0.5
        BetweenShuru.anchorY=0.5   
        p2.addChild(BetweenShuru);

        //将内容填进去
        BetweenShuru.getComponent(cc.EditBox).string=Comment;
        //将头像填进去
        var self=BetweenShuru.getChildByName("touxiang")
        cc.loader.loadRes(PictureNumber, cc.SpriteFrame, function (err, sf) {
        self.getComponent(cc.Sprite).spriteFrame = sf;
        })

        //将昵称填进去
        var ni=BetweenShuru.getChildByName("nicheng");
        ni.getComponent(cc.Label).string=PersonalNickName;   
        
        //将时间填进去
        var time=BetweenShuru.getChildByName("time");
        time.getComponent(cc.Label).string=CommentTime;

        })
}

2、在挂在评论场景canvas上的脚本组件中调用这个函数,这样就可以把每个用户的每一条评论都加载出来,写在onload可以在每次场景加载时调用。

onLoad:function(){
        //在场景加载时请求数据,加载评论的字段
        
        var y=jieshou("http/liqi/mp3")  
        var obj = JSON.parse(y); 
        cc.log(obj)
        let result=obj.result
        cc.log(result);
        for(let i=0;i<result.length;i++)
        {
            one(i);
        }
    },

总结:大致思路就是,接收到json格式数据—读取json的内容----将预制体实例化出来—对每一串json数据与每一个预制体匹配
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值