cocosCreator ScrollView 纵向滚动列表无限循环刷新

2024-04-28 18:18

本文主要是介绍cocosCreator ScrollView 纵向滚动列表无限循环刷新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

纵向滚动列表无限刷新,横向的稍微修改即可。原理相同。

cc.Class({extends: cc.Component,properties: {itemPref:{type: cc.Prefab,default: null,},mask:{type: cc.Node,default: null,},},// onLoad () {},//只支持纵向。
//只支持纵向。
//只支持纵向。start () {this.itemH = 100; //包括间隙this.itemTotalNum = 8;this.visibleSize = this.mask.getContentSize();this.realItemNum = Math.floor(this.visibleSize.height / this.itemH) + 2;this.itemArr = [];//测试数据this.data = []; for(var i=0; i<17; i++){this.data.push("" + i) ;}this.initItem();},initItem(){var eventHandler = new cc.Component.EventHandler();eventHandler.target = this.node;eventHandler.component = "ScrollHelper";eventHandler.handler = "onScroll";this.scroll_com  = this.getComponent(cc.ScrollView); this.scroll_com.scrollEvents.push((eventHandler)); var totalH = this.itemTotalNum*this.itemH;this.mask.getContentSize()this.scroll_com.content.setContentSize(this.visibleSize.width, totalH);this.initObj();    },initObj(){for(var i=0; i < this.realItemNum; i++){var item = cc.instantiate(this.itemPref);this.scroll_com.content.addChild(item);item.y = -this.itemH/2 - this.itemH*i;this.itemArr.push(item);this.refreshData(i, item)}},onScroll(){this.refresh();},refresh(){this.currOffset = this.scroll_com.getScrollOffset();var start_index = Math.floor(this.currOffset.y / this.itemH);  var isOutMax = this.visibleSize.height + this.currOffset.y > (this.itemTotalNum-1)*this.itemHif (start_index<0 || isOutMax){return;}for(var i=0; i < this.realItemNum; i++){var item = this.itemArr[i];var new_y = -this.itemH/2 - this.itemH*(i + start_index);item.y = new_y; this.refreshData(i + start_index, item) }},//测试数据refreshData(dataIndex, item){var lbl = item.getChildByName("lbl").getComponent(cc.Label);lbl.string = "aa"+dataIndex;}// update (dt) {},
});

 

这篇关于cocosCreator ScrollView 纵向滚动列表无限循环刷新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943925

相关文章

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Java中的for循环高级用法

《Java中的for循环高级用法》本文系统解析Java中传统、增强型for循环、StreamAPI及并行流的实现原理与性能差异,并通过大量代码示例展示实际开发中的最佳实践,感兴趣的朋友一起看看吧... 目录前言一、基础篇:传统for循环1.1 标准语法结构1.2 典型应用场景二、进阶篇:增强型for循环2.

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强