LayaBox入门基础之JS代码实现序号逻辑
2.2 编写代码逻辑
2.2.1 实现List序号逻辑
要实现List序号的数据添加,需要用到“laya.ui.List” API中的list数据源赋值array,单元格渲染处理器renderHandler,以及“laya.display.Node ”API下通过子节点名字获取子节点对象的方法getChildByName。我们先看下API说明:如图19、图20、图21。
(图19)
(图20)
(图21)
List序号添加代码如下:
(function() { var Stage= Laya.Stage; var Handler= Laya.Handler; var Loader= Laya.Loader; var WebGL = Laya.WebGL; var ListDemoView; var arr; (function() { Laya.init(640,1136,WebGL); Laya.stage.bgColor = "#ffffff"; Laya.stage.scaleMode = Stage.SCALE_SHOWALL; //预加载资源文件后执行回调 Laya.loader.load(["res/atlas/ListPage.atlas","res/atlas/template/ButtonTab.atlas"], Handler.create(this, onLoaded)); })(); function onLoaded(){ ListDemoView = new ListPageUI(); Laya.stage.addChild(ListDemoView); //获得List模拟数据,并渲染 getListData(); } function getListData(){ //添加list数据 arr = []; for (var i = 1; i <= 30; i++) { arr.push({listNumber: {text:i}}); } ListDemoView._list.vScrollBarSkin='';//添加list滚动条功能(UI不可显示) ListDemoView._list.array = arr;//数据赋值 //list渲染函数 ListDemoView._list.renderHandler = new Handler(this, onRender); } function onRender(cell,index){ //如果索引不再可索引范围,则终止该函数 if(index > arr.length)return; //获取当前渲染条目的数据 var data = arr[index]; //根据子节点的名字listNumber,获取子节点对象。 var listNumber = cell.getChildByName("listNumber") ; //label渲染列表文本(序号) listNumber.text=data.listNumber.text; } })();
代码运行结果如图22所示,成功实现了序号数据的带入。具体实现逻辑与代码说明直接查看代码和注释。
(图22)
2.2.2 实现List序滚动
30条模拟数据在上面的示例运行后,只能看到16条。所以我们需要增加一个滚动效果。laya.ui.List的API中vScrollBarSkin可以满足我们的需求,API说明如图23:
(图23)
该功能增加只需一行代码,就不粘全部代码了,将下面代码放到赋值列表数据源之前。
//添加list滚动条功能 listView._list.vScrollBarSkin='';
再次运行效果如图24所示:
(图24)
有些人之所以不断成长,就绝对是有一种坚持下去的力量。好读书,肯下功夫,不仅读,还做笔记。人要成长,必有原因,背后的努力与积累一定数倍于普通人。所以,关键还在于自己。