Egret社区
2银子
文档里都没有写dataGroup和scroller配合使用的方式。要写一个100行的排行榜,目前按照文档写的数据容器滚动不了,滚动容器设置为ON时手指滑动可以滚动,但是手指抬起之后数据容器又滚回到了初始位置,陷入了懵逼中,请问官方文档能写好点吗有没有懂的出来讲解一番
分享到 :
1 人收藏

13 个回复

正序浏览
a18050123231  圆转纯熟 | 2018-9-3 20:08:56

ok,问题已经大致解决了,我的LabelRenderer里面写的有点问题~谢谢你的帮助
a18050123231  圆转纯熟 | 2018-9-3 17:59:56
熊猫少女 发表于 2018-9-3 17:27
[mw_shl_code=applescript,true]let dataArr:any [] = [
                        {img:"resource/assets/myImg/herogoods/good ...

我复制个代码,一直说含有不良信息,我
熊猫少女  圆转纯熟 | 2018-9-3 17:27:56
a18050123231 发表于 2018-9-3 17:04
我这无法上传文件,和图片一样,上传的时候就崩溃。
private _rankData = {
        rankNum: 0,

[mw_shl_code=applescript,true]let dataArr:any [] = [
                        {img:"resource/assets/myImg/herogoods/goods01.png",name:"魔法石",jiacheng:"法力加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods02.png",name:"诅咒娃娃",jiacheng:"咒术加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods03.png",name:"万圣戒指",jiacheng:"敏捷加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods04.png",name:"斗篷",jiacheng:"耐力加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods05.png",name:"鹅毛笔",jiacheng:"嗜血加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods06.png",name:"屠龙刀",jiacheng:"物理加成 + 3"},
                        {img:"resource/assets/myImg/herogoods/goods07.png",name:"倚天剑",jiacheng:"精神加成 + 3"}
                ]

        let myscrollView:eui.Scroller = new eui.Scroller();
        this.addChild(myscrollView);
        myscrollView.width = 640;
        myscrollView.height = 600;
        

        let myCollection:eui.ArrayCollection = new eui.ArrayCollection(dataArr);
        let dataGroup = new eui.DataGroup();
        dataGroup.dataProvider = myCollection;
        dataGroup.touchEnabled = true;
        this.addChild(dataGroup);
        dataGroup.itemRenderer =heroList_item;
        myscrollView.viewport = dataGroup;
[/mw_shl_code]
你这个是可以的啊
a18050123231  圆转纯熟 | 2018-9-3 17:04:16

我这无法上传文件,和图片一样,上传的时候就崩溃。
private _rankData = {
        rankNum: 0,
        rankSoloDataList: []
    };

private recordY:number = 0;
        private recordV:number = 0;
    private createScence(){
                let boxMask = ShapeUtil.getRect([this.width, this.height], 0x000000, 0.68, [0, 0]);
                this.addChild(boxMask);


                let rankBg = new eui.Image('rank-bg_png');
                this.addChild(rankBg);
                rankBg.x = (this.width - rankBg.width)/2;
                rankBg.y = (this.height - rankBg.height)/2 - 50;
               
                let boxClose = new eui.Image('projectBtns_json.box-close');
                this.addChild(boxClose);
                boxClose.right = 53;
                boxClose.y = rankBg.y - boxClose.height/2 + 70;
                boxClose.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
                        this.dispatchEventWith('CLOSE');
                        if(this.parent){
                                this.parent.removeChild(this);
                        }
                },this);


                let myRankNum:eui.Label
                if(this._rankData.rankNum == -1){
                        myRankNum = new eui.Label('您还未玩过游戏');
                }else{
                        myRankNum = new eui.Label('当前排名' + this._rankData.rankNum.toString());
                }
                myRankNum.textColor = 0x159EDA;
                myRankNum.size = 36;
                myRankNum.horizontalCenter = 0;
                myRankNum.y = rankBg.y + rankBg.height - 35 - myRankNum.height;
                myRankNum.stroke = 3;
                myRankNum.strokeColor = 0xffffff;
                this.addChild(myRankNum);


                // 排行榜列表
                let rankListContainer = new egret.Sprite();
                this.addChild(rankListContainer);
                rankListContainer.y = 20;


                let myscrollView:eui.Scroller = new eui.Scroller();
        this.addChild(myscrollView);
        myscrollView.width = 610;
        myscrollView.height = 550;
        myscrollView.x = (this.width - myscrollView.width)/2;
        myscrollView.y = rankBg.y + 350;
                myscrollView.addEventListener(egret.TouchEvent.TOUCH_BEGIN,(e:egret.TouchEvent)=>{
                        this.recordY = e.stageY;
                },this);
                myscrollView.addEventListener(egret.TouchEvent.TOUCH_MOVE,(e:egret.TouchEvent)=>{
                        if(e.stageY-this.recordY<0){
                                dataGroup.scrollV += 10;
                        }else{
                                dataGroup.scrollV -= 10;
                        }
                        this.recordV = myscrollView.viewport.scrollV;
                        myscrollView.viewport.scrollH = 0;
                },this);
                myscrollView.scrollPolicyV = eui.ScrollPolicy.ON;


                let myCollection:eui.ArrayCollection = new eui.ArrayCollection(this._rankData.rankSoloDataList);
                let dataGroup = new eui.DataGroup();
                dataGroup.dataProvider = myCollection;
        dataGroup.width = rankBg.width;
                dataGroup.touchEnabled = true;
                dataGroup.useVirtualLayout = true;
                this.addChild(dataGroup);
                dataGroup.itemRenderer =LabelRenderer;
               
                // dataGroup.height = 110*this._rankData.rankSoloDataList.length;
        myscrollView.viewport = dataGroup;
               
                if(this._rankData.rankSoloDataList.length == 0){
                        let tipTxt = new egret.TextField();
                        tipTxt.text = "暂无玩家上榜,快去玩游戏吧!";
                        tipTxt.size = 32;
                        tipTxt.textColor = 0xffffff;
                        tipTxt.x = 70;
                        tipTxt.y = 50;
                        rankListContainer.addChild(tipTxt);
                }
    }

熊猫少女  圆转纯熟 | 2018-9-3 16:52:31
a18050123231 发表于 2018-9-3 16:49
但是滚动的不行啊,像我上面描述的,在手指移动的时候确实可以滚动,但是手指移开之后又弹回到了初始的位 ...

可以发个demo吗
a18050123231  圆转纯熟 | 2018-9-3 16:49:27
熊猫少女 发表于 2018-9-3 16:41
可以啊,和List使用方法是一样的啊

但是滚动的不行啊,像我上面描述的,在手指移动的时候确实可以滚动,但是手指移开之后又弹回到了初始的位置,我用egret inspect那个软件看了,dataGroup里面确实有100条数据了,我这里不能发图片,一发浏览器就爆炸,不然给你截个图~~
熊猫少女  圆转纯熟 | 2018-9-3 16:41:29
a18050123231 发表于 2018-9-3 16:28
scroller加dataGroup的方式不行吗?我只是显示可以滚动的排行榜,也不需要什么选中不选中的,而且文档里 ...

可以啊,和List使用方法是一样的啊
a18050123231  圆转纯熟 | 2018-9-3 16:28:55
熊猫少女 发表于 2018-9-3 16:14
你可以使用Scroller加List的方式,可以参考一下这个http://bbs.egret.com/forum.php?mod=viewthread&tid=50 ...

scroller加dataGroup的方式不行吗?我只是显示可以滚动的排行榜,也不需要什么选中不选中的,而且文档里面关于dataGroup不就是说配合scroller使用吗,别说这两个无法配合使用。。。。。。,
熊猫少女  圆转纯熟 | 2018-9-3 16:14:24
你可以使用Scroller加List的方式,可以参考一下这个http://bbs.egret.com/forum.php?m ... =%E5%8D%A1%E7%89%8C
a18050123231  圆转纯熟 | 2018-9-3 16:10:21
为什么没人回复此贴。。。。。。。。。。。。。。。。。。。。。。。。是大家觉得这个问题太难了还是太简单不屑回答。。。。。。。。。。之前发的一个帖也是没人回复。。。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部