CN111221600B - 一种LayaAir引擎滚动的管理方法及终端 - Google Patents
一种LayaAir引擎滚动的管理方法及终端 Download PDFInfo
- Publication number
- CN111221600B CN111221600B CN201811416737.6A CN201811416737A CN111221600B CN 111221600 B CN111221600 B CN 111221600B CN 201811416737 A CN201811416737 A CN 201811416737A CN 111221600 B CN111221600 B CN 111221600B
- Authority
- CN
- China
- Prior art keywords
- rolling
- sub
- array
- scrolling
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种LayaAir引擎滚动的管理方法及终端,确定LayaAir引擎滚动的可显示区域;获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替;实现对滚动子元素的重复利用,能够节省性能开销,提高LayaAir引擎的运行性能。
Description
技术领域
本发明涉及LayaAir引擎应用开发领域,尤其涉及一种LayaAir引擎滚动的管理方法及终端。
背景技术
LayaAir引擎主要以H5应用为主,其中H5应用的一个难点就是运行性能,其中,影响其运行性能的原因有多个,其中一个是LayaAir自带的List控件满足不了目前正在开发的应用功能,并存在功能编写不合理的地方,比如对于LayaAir引擎滚动功能的编写存在以下不合理的地方:滚动只能纵向,不能横向;一个List控件中只能满足单一固定长度的滚动元素,不支持混合长度的滚动元素;List控件初始化时会多次调用,造成过多的性能消耗;当滚动元素多行多列时对于不同占用范围的处理方法过于繁杂且不易扩展;不能重复利用滚动子元素。为了能够节省应用的性能开销,提高LayaAir引擎的运行性能,开发者通常会想尽各种方法去优化,但目前,鲜有对LayaAir引擎功能编写方面的优化。
发明内容
本发明所要解决的技术问题是:提供一种LayaAir引擎滚动的管理方法及终端,能够重复利用滚动子元素,节省性能开销,提高LayaAir引擎的运行性能。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种LayaAir引擎滚动的管理方法,包括步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种LayaAir引擎滚动的管理终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替。
本发明的有益效果在于:根据LayaAir引擎滚动的可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替,实现对滚动子元素的重复利用,能够节省性能开销,提高LayaAir引擎的运行性能。
附图说明
图1为本发明实施例的一种LayaAir引擎滚动的管理方法的步骤流程图;
图2为本发明实施例的一种LayaAir引擎滚动的管理终端的结构示意图;
标号说明:
1、一种LayaAir引擎滚动的管理终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:根据LayaAir引擎滚动的可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替,实现对滚动子元素的重复利用。
请参照图1,一种LayaAir引擎滚动的管理方法,包括步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替。
从上述描述可知,本发明的有益效果在于:根据LayaAir引擎滚动的可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替,实现对滚动子元素的重复利用,能够节省性能开销,提高LayaAir引擎的运行性能。
进一步的,所述步骤S3包括:
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处。
由上述描述可知,当滚动的区域由多个滚动子元素组成时,在滚动子元素处在用户看不到的区域时,将滚动子元素进行首尾的填充,从而达到重复利用滚动子元素的目的,能够节省性能开销,提高LayaAir引擎的运行性能。
进一步的,所述步骤S3还包括:
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新。
由上述描述可知,在执行了数组中首尾元素的更替后,对数组进行元素内容的刷新,保证了滚动子元素填充内容的及时更新。
进一步的,所述步骤S1之前还包括:绘制滚动区域和填充滚动子元素至所述滚动区域中;
所述绘制滚动区域包括:
接收滚动区域的配置信息;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域;
将每个滚动子元素的坐标保存至数组。
由上述描述可知,通过接收滚动区域的配置信息,并根据配置信息进行滚动区域的绘制,保证了所绘制的滚动区域的多样性,可以根据需要设置排序方向。
进一步的,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数。
由上述描述可知,只有在创建滚动区域时或第一次重置滚动区域时才调用绘制函数,避免绘制函数的被多次调用,造成过多的性能消耗。
请参照图2,一种LayaAir引擎滚动的管理终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替。
从上述描述可知,本发明的有益效果在于:根据LayaAir引擎滚动的可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替,实现对滚动子元素的重复利用,能够节省性能开销,提高LayaAir引擎的运行性能。
进一步的,所述步骤S3包括:
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处。
由上述描述可知,当滚动的区域由多个滚动子元素组成时,在滚动子元素处在用户看不到的区域时,将滚动子元素进行首尾的填充,从而达到重复利用滚动子元素的目的,能够节省性能开销,提高LayaAir引擎的运行性能。
进一步的,所述步骤S3还包括:
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新。
由上述描述可知,在执行了数组中首尾元素的更替后,对数组进行元素内容的刷新,保证了滚动子元素填充内容的及时更新。
进一步的,所述步骤S1之前还包括:绘制滚动区域和填充滚动子元素至所述滚动区域中;
所述绘制滚动区域包括:
接收滚动区域的配置信息;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域;
将每个滚动子元素的坐标保存至数组。
由上述描述可知,通过接收滚动区域的配置信息,并根据配置信息进行滚动区域的绘制,保证了所绘制的滚动区域的多样性,可以根据需要设置排序方向。
进一步的,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数。
由上述描述可知,只有在创建滚动区域时或第一次重置滚动区域时才调用绘制函数,避免绘制函数的被多次调用,造成过多的性能消耗。
实施例一
请参照图1,一种LayaAir引擎滚动的管理方法,包括步骤:
S0、绘制滚动区域和填充滚动子元素至所述滚动区域中;
所述绘制滚动区域包括:
接收滚动区域的配置信息;
其中,所述配置信息包括滚动子元素的属性,比如行数、列数、滚动类型(垂直或水平)、行距、列距、开始填充坐标、总共多少条滚动信息、滚动子元素的长宽值、当前滚动子元素的父节点、是否循环使用等;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
具体的,可以根据获得的单个滚动子元素的长宽值、滚动子元素间的间距值,然后将长宽值和滚动子元素间的间距之和乘以行列数便可以得到滚动区域的长宽,从而得到滚动区域的极限值,即可滚动区域的最大值和最小值,并确定滚动方向:垂直或水平;
其中,所述滚动子元素的长宽值可以基于使用者根据显示内容进行任意设置;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
其中,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数,并且对一些无用的调用进行去除;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域;
在进行填充时,根据滚动子元素的长宽计算出每个滚动子元素所占的格子数,当有占用多个格子的滚动子元素时,计算其开始和结束的行号和列号,并对其占用的行号和列号进行标记,则当下一个滚动子元素需要填充时,便可以直接根据行号、列号是否已经被标记快速定位到所述滚动子元素应该填充到哪一行号、列号对应的格子里,以此简化了当滚动子元素占用多行多列时存在不同的占用范围时繁琐的处理方法,方法简单且容易扩展;
将每个滚动子元素的坐标保存至数组;
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
滚动主要是在用户移动的阶段,通过上一帧的操作坐标和当前帧的操作坐标进行差值计算便可得到当前滚动的坐标,从而达到视觉上的滚动效果;
所述滚动子元素的绝对坐标在创建滚动子元素时就存储在数组中,每个数组元素的坐标是固定的;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替;
具体的,根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处;
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新;
具体的,通过通知使用者注册的监听函数进行元素内容的刷新。
实施例二
请参照图2,一种LayaAir引擎滚动的管理终端1,包括存储器2、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的各个步骤。
实施例三
将上述LayaAir引擎滚动的管理方法应用于实际的应用场景,具体实现如下:通过滚动控制器总类ScrollManager这个入口,派发不同的滚动类型事件并执行,通过该统一入口对滚动类型进行管理,达到对不同的滚动类型进行监控;
通过滚动控制器属性类ScrollAttributeManager获得不同功能模块的滚动配置信息;
通过滚动控制器类ScrollController来进行可滚动区域的计算、事件的派发、用户滚动操作的监听等;
其中,滚动控制器类有两种类型,一种是NormalScrollController,该滚动控制器主要是为了实现单行或单列的滚动子元素重复利用的效果实现,另一种是PageScrollController,该滚动控制器主要是为了实现多行多列的滚动子元素重复利用的效果实现,通过继承至ScrollController类,主要是控制滚动子元素的重复利用,以此达到运行性能优化的目的;
详细功能实现如下:
滚动区域/运算计算与填充:
控制器管理总类ScrollManager和控制器属性类ScrollAttributeManager来完成上述功能;
控制器管理总类通过在控制器属性类中获取配置好的滚动信息进行滚动区域的绘制和滚动子元素的填充;
配置好的滚动信息包括滚动子元素的属性,比如行数、列数、滚动类型(垂直或水平)、行距、列距、开始填充坐标、总共多少条滚动信息、滚动子元素的长宽值、当前滚动子元素的父节点、是否循环使用等;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
具体的,可以根据获得的单个滚动子元素的长宽值、滚动子元素间的间距值,然后将长宽值和滚动子元素间的间距之和乘以行列数便可以得到滚动区域的长宽,从而得到滚动区域的极限值,即可滚动区域的最大值和最小值,并确定滚动方向:垂直或水平;
其中,所述滚动子元素的长宽值可以基于使用者根据显示内容进行任意设置;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
其中,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数,并且对一些无用的调用进行去除;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差(即坐标x、y的变更值)并保存;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域;
具体的,先通过配置信息计算出滚动区域能够显示的最大的滚动子元素的个数,如果滚动类似是垂直滚动的话,会将根据配置信息计算得到的行数加一得到最大的滚动子元素个数,如果滚动类似是水平滚动的话,会将根据配置信息计算得到的列数加一得到最大的滚动子元素个数,加一列或加一行是为了解决在循环利用滚动子元素时首尾位置变换时不突兀的视觉效果;
在进行填充时,根据滚动子元素的长宽计算出每个滚动子元素所占的格子数,当有占用多个格子的滚动子元素时,计算其开始和结束的行号和列号,并对其占用的行号和列号进行标记,则当下一个滚动子元素需要填充时,便可以直接根据行号、列号是否已经被标记快速定位到所述滚动子元素应该填充到哪一行号、列号对应的格子里,以此简化了当滚动子元素占用多行多列时存在不同的占用范围时繁琐的处理方法,方法简单且容易扩展;
将每个滚动子元素的坐标保存至数组;
滚动操作与滚动子元素的重复利用:
主要功能由滚动控制器ScrollController实现,根据开发者确定的滚动控制器类型,继而判断是否要绑定NormalScrollController和PageScrollController继承ScrollController的脚本;
滚动控制器中注册了用户的操作事件监听,通过监听回调来计算用户的操作差值继而达到滚动的效果;分为了按下、移动、抬起三个阶段,不同阶段会记录和执行不同的效果表现;当用户按下鼠标或者用手点击屏幕时设为滚动的初始态(滚动信息初始化、按下坐标记录等);滚动主要在移动这个阶段,通过得到上一帧的操作坐标和当前帧的操作坐标进行差值计算便可得到当前滚动的坐标,从而达到视觉上的滚动效果;在抬起这个阶段主要是为了防止滚动到可显示区域之外;
滚动子元素的重复利用主要是由继承至滚动控制器类的NormalScrollController和PageScrollControlle两个具有不同子元素类型的控制类实现,执行原理是一样的,只是具有少量不同的属性;
NormalScrollController的滚动子元素只有一个根节点,PageScrollControlle在第一级根节点下又划分了N个父节点(所述父节点的个数根据能显示多少页加一算得),即PageScrollControlle的滚动元素有根节点和父节点;
执行滚动子元素的复用时:
先确定LayaAir引擎滚动的可显示区域;
接着获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
所述滚动子元素的绝对坐标在创建滚动子元素时就存储在数组中,每个数组元素的坐标时固定的,在滚动时滚动子元素的坐标不变,当需要进行首尾互换时才进行坐标的叠加计算;
然后根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替;
具体的,根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处;
在进行判断时,根据滚动类型不同而变化,如果是垂直滚动则是进行Y坐标值判断,如果是水平滚动,则是进行X坐标值判断;
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新;
具体的,通过通知使用者注册的监听函数进行元素内容的刷新;
举个例子,总共有12条数据,但是一个显示面板只能显示8条数据的内容,默认显示前8条,但是为了在元素更换时不突兀所以会创建9个滚动子元素,最终显示的是前9条数据;当用户在向上滚动时即是查看更多的数据,届时当第一条数据不在可见区域的显示范围内时,排在数组首位的那个元素就会填充到末尾处既是显示第10条数据的容器,当数组中的首位填充到末尾处时会通知函数使用者进行数据刷新,传过去的数组索引是9,函数使用者根据索引进行对该元素容器填充内容以此来展示新的填充内容(即第10条数据的内容),并刷新数组以此往复,直到最后一条数据便不可再进行首尾更替;当用户在向下滚动时即是查看前面已经查看过的元素,填充方案同想上滚动,索引值越来越小直到填充的索引是数据的第一条为止。
综上所述,本发明提供的一种LayaAir引擎滚动的管理方法及终端,根据滚动区域的配置信息进行滚动区域的绘制,能够根据需要确定滚动方式,并且支持混合长宽的滚动元素,在绘制滚动区域时具有极大的灵活性,同时根据LayaAir引擎滚动的可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替,当滚动的区域由多个滚动子元素组成时,在滚动子元素处在用户看不到的区域时,将滚动子元素进行首尾的填充,从而达到重复利用滚动子元素的目的,能够节省性能开销,提高LayaAir引擎的运行性能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种LayaAir引擎滚动的管理方法,其特征在于,包括步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替;
所述步骤S3还包括:
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新;
所述步骤S1之前还包括:绘制滚动区域和填充滚动子元素至所述滚动区域中;
所述绘制滚动区域包括:
接收滚动区域的配置信息;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域,具体为:
先通过所述配置信息计算出滚动区域能够显示的最大的滚动子元素的个数,如果滚动是垂直滚动,则根据所述配置信息计算得到的行数加一得到最大的滚动子元素个数,如果滚动是水平滚动,则根据所述配置信息计算得到的列数加一得到最大的滚动子元素个数;
在进行填充时,根据滚动子元素的长宽计算出每个滚动子元素所占的格子数,当有占用多个格子的滚动子元素时,计算其开始和结束的行号和列号,并对其占用的行号和列号进行标记;
将每个滚动子元素的坐标保存至数组。
2.根据权利要求1所述的一种LayaAir引擎滚动的管理方法,其特征在于,所述步骤S3包括:
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处。
3.根据权利要求1所述一种LayaAir引擎滚动的管理方法,其特征在于,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数。
4.一种LayaAir引擎滚动的管理终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、确定LayaAir引擎滚动的可显示区域;
S2、获取存储于数组中的各个滚动子元素的绝对坐标和当前滚动的坐标;
S3、根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标确定是否执行所述数组中的首尾元素的更替;
所述步骤S3还包括:
若执行了所述数组中的首尾元素的更替,则对数组进行元素内容的刷新;
所述步骤S1之前还包括:绘制滚动区域和填充滚动子元素至所述滚动区域中;
所述绘制滚动区域包括:
接收滚动区域的配置信息;
根据所述配置信息得到滚动区域的极限值,并确定滚动方向;
根据所述滚动区域的极限值以及滚动方向调用绘制函数绘制滚动区域;
所述填充滚动子元素至所述滚动区域中包括:
根据所述滚动区域的配置信息确定首个滚动子元素的初始坐标、上个滚动子元素与下个滚动子元素的坐标差;
创建首个滚动子元素,并填充至所述初始坐标;
循环创建滚动子元素,并根据所述坐标差将所述滚动子元素填充到对应位置直到填充满整个滚动区域,具体为:
先通过所述配置信息计算出滚动区域能够显示的最大的滚动子元素的个数,如果滚动是垂直滚动,则根据所述配置信息计算得到的行数加一得到最大的滚动子元素个数,如果滚动是水平滚动,则根据所述配置信息计算得到的列数加一得到最大的滚动子元素个数;
在进行填充时,根据滚动子元素的长宽计算出每个滚动子元素所占的格子数,当有占用多个格子的滚动子元素时,计算其开始和结束的行号和列号,并对其占用的行号和列号进行标记;
将每个滚动子元素的坐标保存至数组。
5.根据权利要求4所述的一种LayaAir引擎滚动的管理终端,其特征在于,所述步骤S3包括:
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中首位滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中首位滚动子元素移至所述数组的结尾处;
根据所述可显示区域、数组中的各个滚动子元素的绝对坐标以及当前滚动的坐标判断所述数组中最后一个滚动子元素是否处于所述可显示区域之外,若是,则将所述数组中最后一个滚动子元素移至所述数组中的首位处。
6.根据权利要求4所述一种LayaAir引擎滚动的管理终端,其特征在于,在创建滚动区域时或第一次重置滚动区域时才调用绘制函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416737.6A CN111221600B (zh) | 2018-11-26 | 2018-11-26 | 一种LayaAir引擎滚动的管理方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416737.6A CN111221600B (zh) | 2018-11-26 | 2018-11-26 | 一种LayaAir引擎滚动的管理方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221600A CN111221600A (zh) | 2020-06-02 |
CN111221600B true CN111221600B (zh) | 2023-05-23 |
Family
ID=70830324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811416737.6A Active CN111221600B (zh) | 2018-11-26 | 2018-11-26 | 一种LayaAir引擎滚动的管理方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221600B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853417A (zh) * | 2012-11-30 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 网络动态图片的滚动分页显示方法和装置 |
CN103874971A (zh) * | 2012-10-12 | 2014-06-18 | Sk普兰尼特有限公司 | 利用网页的scrollTop属性执行滚动的***和方法 |
CN107301049A (zh) * | 2017-06-22 | 2017-10-27 | 广州唯品会网络技术有限公司 | 字符滚动显示方法、装置及存储介质 |
CN107977150A (zh) * | 2017-10-31 | 2018-05-01 | 阿里巴巴集团控股有限公司 | 一种视图滚动方法、装置以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949735B2 (en) * | 2012-11-02 | 2015-02-03 | Google Inc. | Determining scroll direction intent |
-
2018
- 2018-11-26 CN CN201811416737.6A patent/CN111221600B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103874971A (zh) * | 2012-10-12 | 2014-06-18 | Sk普兰尼特有限公司 | 利用网页的scrollTop属性执行滚动的***和方法 |
CN103853417A (zh) * | 2012-11-30 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 网络动态图片的滚动分页显示方法和装置 |
CN107301049A (zh) * | 2017-06-22 | 2017-10-27 | 广州唯品会网络技术有限公司 | 字符滚动显示方法、装置及存储介质 |
CN107977150A (zh) * | 2017-10-31 | 2018-05-01 | 阿里巴巴集团控股有限公司 | 一种视图滚动方法、装置以及电子设备 |
Non-Patent Citations (1)
Title |
---|
"LayaAir实现技能滚动刷新";fulit;《公开网址:https://blog.csdn.net/fulit/article/details/76168051》;20170727;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111221600A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100424700C (zh) | 在网页中实现表格局部滚动显示的方法及*** | |
JP3734491B1 (ja) | スプレッドシートのセル内グラフ表示方法 | |
US9582612B2 (en) | Space constrained ordered list previews | |
CN103019682B (zh) | 一种通过自定义图形组合在svg中展示数据的方法 | |
CN107704444B (zh) | 多栏多列表格的展示方法 | |
WO2020151446A1 (zh) | 一种监控***的模式设置方法和装置 | |
US11710264B2 (en) | Multi-graph display method and computer-readable storage medium | |
CN113467871A (zh) | H5页面展示方法、装置、设备及存储介质 | |
US10528209B2 (en) | Displaying indicator when data of cell that is not visible changes | |
CN106162302B (zh) | 一种Launcher主界面的编排方法、装置及智能电视 | |
CN109446506B (zh) | 一种电子表单表格自动再造的方法和装置 | |
CN105528200A (zh) | 浏览器标签页的显示方法及装置 | |
CN104090755A (zh) | Android Launcher界面中长应用名称的垂直滚动显示方法 | |
US10114679B2 (en) | Logical CPU division usage heat map representation | |
US20110004887A1 (en) | Vector-based magnified pointer | |
CN111221600B (zh) | 一种LayaAir引擎滚动的管理方法及终端 | |
CN107340886B (zh) | 一种软键盘状态确定方法、装置、介质及终端 | |
JP3320572B2 (ja) | コンピュータ処理用操作ボタンの最適化表示方法 | |
US20110242108A1 (en) | Visualization of complexly related data | |
JPH0374428B2 (zh) | ||
CN111488087B (zh) | 控件显示方法、装置及***和计算机可读存储介质 | |
CN113297313A (zh) | 表格数据展示方法、装置、电子设备及存储介质 | |
CN112162667A (zh) | 对象显示控制方法、装置及电子设备 | |
US20120254787A1 (en) | Method and system for accessing data | |
CN106570114B (zh) | 快速定制可编辑的网页表格制作方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |