美文网首页
Laya:动态向List(列表)中加载分页数据

Laya:动态向List(列表)中加载分页数据

作者: 一眼就认出你 | 来源:发表于2020-06-23 14:46 被阅读0次

    代码关键:
    一、给list添加橡皮回弹事件Event.ElasticOver

     _rankList.scrollBar.on(Event.ElasticOver,this,_onRankListScrollEnd);
    

    二、监听函数

     private function _onRankListScrollEnd(dirtag:String):void{
          trace("--------------_onRankListScrollEnd:"+dirtag);
           if(dirtag=="Up"){
                   //向上滑
           }else if(dirtag=="Down"){
                  //向下滑
           }
      }
    

    三、列表数据

    private var allRankList:HashMap;
    private var nowRankType:int;
    //初始化排行榜数据
    private function initRankData():void{
            //HashMap可以直接用Object也可以
            allRankList= new HashMap();
            allRankList[RankType.ROLE_ZONGHE_RANK] = []; //战力
            allRankList[RankType.LEVEL_RANK]= []; //等级
    }
    
    //增加排行榜数据
    private function addData(rank:Array,rankType:int):Array{
            nowRankType=rankType;
            for(var i:int=0;i<rank.length;i++){
                  (allRankList[rankType] as Array).push(rank[i]);
             }
             return allRankList[rankType];  
     }
    
    //服务器放回某一个page(分页)的排行榜数据
    //rankType指的就是:RankType.ROLE_ZONGHE_RANK、RankType.LEVEL_RANK等
    public function refreshRank(rank:Array,rankType:int):void{
             //给排行榜列表赋数据;                     
             this._rankList.array=addData(rank,rankType);
    }
    

    四、请求服务器

    private static var PAGE_NUM:int=20; //每页20条数据
    private static var PAGE_MAX:int=5;   //最大5页,也就是最多展示5*20=100条数据
    private function downPage():void{
            var rank:Array=allRankList[nowRankType];
            var page:int=Math.floor(rank.length/PAGE_NUM); //当前页-1
            if(rank.length%PAGE_NUM==0&&page<PAGE_MAX){ //证明当前页不是最后一页
                  sendRankList(page);
             }
    }
    
     private function sendRankList(page:int=0):void{
           var protocol:CRequestRankList = new CRequestRankList();
           protocol.page = page;
           protocol.ranktype=nowRankType;
           if(page==0){
                allRankList[nowRankType] = [];
            }               
            NetworkManager.instance.Send(protocol);
    }
    

    注意:这些只是部分关键代码,list的渲染等没有展示出来,关键是掌握其主要思想,也就是第一、二的代码

    相关文章

      网友评论

          本文标题:Laya:动态向List(列表)中加载分页数据

          本文链接:https://www.haomeiwen.com/subject/bkhhfktx.html