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

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

Exchange 服务器地址列表的配置方法与注意事项

Exchange Server 是微软推出的一款企业级邮件服务器软件,广泛应用于企业内部邮件系统的搭建与管理。配置 Exchange 服务器地址列表是其中一个关键环节。本文将详细介绍 Exchange 服务器地址列表的配置方法与注意事项,帮助系统管理员顺利完成这一任务。 内容目录 1. 引言 2. 准备工作 3. 配置地址列表 3.1 创建地址列表 3.2 使用 Exchange

Spring是如何解决循环依赖?

现象解释: 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间相互依赖,形成了一个循环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。Spring通过多种机制解决循环依赖问题,具体来说,主要有以下几种方式: 1.三级缓存机制 Spring容器在实例化Bean时使用了三级缓存来解决循环依赖,主要涉及三个缓存结构: 一级

解析apollo纵向控制标定表程序

百度apollo采用标定表描述车辆速度、加速度与油门/刹车之间的关系。该表可使无人车根据当前车速与期望加速度得到合适的油门/刹车开合度。除了文献《Baidu Apollo Auto-Calibration System - An Industry-Level Data-Driven and Learning based Vehicle Longitude Dynamic Calibrating

颠覆你的开发模式:敏捷思维带来的无限可能

敏捷软件开发作为现代软件工程的重要方法论,强调快速响应变化和持续交付价值。通过灵活的开发模式和高效的团队协作,敏捷方法在应对动态变化和不确定性方面表现出色。本文将结合学习和分析,探讨系统变化对敏捷开发的影响、业务与技术的对齐以及敏捷方法如何在产品开发过程中处理持续变化和迭代。 系统变化对敏捷软件开发的影响 在敏捷软件开发中,系统变化的管理至关重要。系统变化可以是需求的改变、技术的升级、