CN106878799A - 一种动画显示方法及装置 - Google Patents
一种动画显示方法及装置 Download PDFInfo
- Publication number
- CN106878799A CN106878799A CN201710094260.3A CN201710094260A CN106878799A CN 106878799 A CN106878799 A CN 106878799A CN 201710094260 A CN201710094260 A CN 201710094260A CN 106878799 A CN106878799 A CN 106878799A
- Authority
- CN
- China
- Prior art keywords
- animation
- interface
- animated content
- moment
- refreshed
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种动画显示方法及装置。方法包括:响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长;根据动画持续时长以及预设的动画内容变化规律,插值得到动画持续时长内至少一个界面刷新时刻的插补值;根据起始动画内容和至少一个界面刷新时刻的插补值,从动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容;以及依次在至少一个界面刷新时刻,根据至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。本申请实施例提供了一种新的动画显示方式,以适应直播应用的发展。
Description
技术领域
本申请涉及互联网直播技术领域,尤其涉及一种动画显示方法及装置。
背景技术
随着互联网技术的发展,基于互联网的直播技术越来越广泛。为了增加直播效果,增进用户与主播之间的互动性,提升直播房间的人气,越来越多的直播应用开始在直播过程中使用动画效果。
在现有直播应用中,一般是基于计时器,均匀改变动画的属性,例如位置、大小、颜色等实现动画效果,例如,在用户向直播房间的主播赠送虚拟礼物的情景中,可以均匀改变虚拟礼物在直播界面上的位置,达到动态显示虚拟礼物的效果,从而增加礼物赠送的趣味性,增进用户与主播之间的互动。
目前直播应用中实现动画效果的方式比较单一,且动画效果也比较类似,急需需要一种新的能够丰富动画效果的显示方式,以适应直播应用的发展。
发明内容
本申请实施例提供一种动画显示方法及装置,用以提供一种新的动画显示方式,以适应直播应用的发展。
本申请实施例提供一种动画显示方法,包括:
响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长;
根据所述动画持续时长以及预设的动画内容变化规律,插值得到所述动画持续时长内至少一个界面刷新时刻的插补值;
根据所述起始动画内容和所述至少一个界面刷新时刻的插补值,从所述动画内容序列中确定所述至少一个界面刷新时刻各自所需的动画内容;以及
依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
在一可选实施方式中,所述响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长,包括:
在所述当前动画播放触发事件到来时,根据所述当前动画播放触发事件指示显示的动画内容,或者根据所述当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置所述动画内容序列;
在所述当前动画播放触发事件到来时,设置所述动画内容序列中的第一个动画内容,或者设置所述动画区域中显示的动画内容作为所述起始动画内容;
在所述当前动画播放触发事件到来时,重置计时器,所述计时器的定时时长为所述动画持续时长。
在一可选实施方式中,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对虚拟礼物赠送控件的点击事件,作为所述当前动画播放触发事件;所述点击事件指示赠送N个同一虚拟礼物,N为自然数;
所述动画内容序列的设置步骤,还包括:
将N个表示所述同一虚拟礼物的数量的递增式数字,作为所述点击事件指示显示的动画内容。
在一可选实施方式中,对所述至少一个界面刷新时刻中的第一界面刷新时刻,所述第一界面刷新时刻的插补值的插值步骤,包括:
根据公式y=1.0-(1.0-x)*(1.0-x)进行插值计算;
x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;
y表示所述第一界面刷新时刻的插补值。
在一可选实施方式中,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对在线人数的推送事件,作为所述当前动画播放触发事件;所述推送事件指示显示所推送的人数M,M为大于或等于0的整数;
所述动画内容序列的设置步骤,还包括:
将从K变化到M的至少一个数字,作为所述推送事件指示显示的动画内容,K为当前显示的在线人数,K为大于或等于0的整数。
在一可选实施方式中,对所述至少一个界面刷新时刻中的第一界面刷新时刻,所述第一界面刷新时刻的插补值的插值步骤,包括:
根据公式y=Math.cos((x+1)*Math.π)/2.0进行插值计算;
x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;
y表示所述第一界面刷新时刻的插补值。
在一可选实施方式中,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对进度条的进度变化事件,作为所述当前动画播放触发事件;所述进度变化事件指示显示进度条的长度L,L为大于或等于0的数;
所述动画内容序列的设置步骤,还包括:
将从L0变化到L的步数,作为所述进度变化事件指示显示的动画内容,L0为当前进度条的长度,L0为大于或等于0的数。
在一可选实施方式中,所述依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止,包括:
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;
执行函数computeScroll()或ondraw(),以重绘所述动画区域;
若所述动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
本申请实施例还提供一种动画显示装置,包括:
设置单元,用于响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长;
插值器,用于根据所述动画持续时长以及预设的动画内容变化规律,插值得到所述动画持续时长内至少一个界面刷新时刻的插补值;
重绘单元,用于根据所述起始动画内容和所述至少一个界面刷新时刻的插补值,从所述动画内容序列中确定所述至少一个界面刷新时刻各自所需的动画内容,以及依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
在一可选实施方式中,所述装置还包括:计时器,所述计时器的定时时长为所述动画持续时长;
所述设置单元具体用于:
在所述当前动画播放触发事件到来时,根据所述当前动画播放触发事件指示显示的动画内容,或者根据所述当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置所述动画内容序列;
在所述当前动画播放触发事件到来时,设置所述动画内容序列中的第一个动画内容,或者设置所述动画区域中显示的动画内容作为所述起始动画内容;
在所述当前动画播放触发事件到来时,重置所述计时器。
在一可选实施方式中,所述重绘单元具体用于:
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;
执行函数computeScroll()或ondraw(),以重绘所述动画区域;
若所述动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
在本申请实施例中,结合插值机制和定时刷新机制,按照动画内容变化规律进行插值计算,可获得动画持续时长内至少一个界面刷新时刻的插补值;根据起始动画内容和至少一个界面刷新时刻的插补值,从待显示的动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容,进而依次在至少一个界面刷新时刻,基于至少一个界面刷新时刻各自所需的动画内容重绘界面中的动画区域,直到满足动画终止条件为止,实现动画效果,并且基于动画内容变化规律可以实现更加灵活、多样性的动画效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一实施例提供的动画显示方法的流程示意图;
图2为本申请另一实施例提供的直播应用中的动画显示方法的流程示意图;
图3为本申请又一实施例提供的直播应用中的动画显示方法的流程示意图;
图4为本申请又一实施例提供的直播应用中的动画显示方法的流程示意图;
图5为本申请又一实施例提供的动画显示装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实例基于安卓系统中的Scroller机制(或称为插值机制),提供一种动画显示方法,主要原理是:预先设置动画内容变化规律;在实际应用中,利用动画内容变化规律,结合定时刷新机制,插值得到界面刷新时刻的动画内容,进而在界面刷新时刻,根据界面刷新时刻的所需动画内容重绘动画区域,以实现动画效果。另外,通过灵活设置动画内容变化规律,可以获得更加灵活、多样性的动画效果。
本申请实施例提供的动画显示方法,适用于直播应用,但不限于直播应用。为了便于描述,在本申请下述具体实施例中均以直播场景为例,说明动画显示流程。
图1为本申请一实施例提供的直播应用中的动画显示方法的流程示意图。如图1所示,所述方法包括:
101、响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长。
102、根据动画持续时长以及预设的动画内容变化规律,插值得到动画持续时长内至少一个界面刷新时刻的插补值。
103、根据起始动画内容和至少一个界面刷新时刻的插补值,从动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容。
104、依次在至少一个界面刷新时刻,根据至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
参照步骤101,在动画播放触发事件的触发下,启动动画显示流程。动画显示流程的启动,需要从设置待显示的动画内容序列、起始动画内容和动画持续时长等信息开始。
在本实施例中,所述动画包含类别相同的一系列动画内容,称之为动画内容序列。可选地,动画内容序列中的动画内容除了属于相同类别之外,其详情可以相同或不同。所述动画内容的类别相同主要是指动画内容属于同一类别,例如都属于数字序列,或者都属于五角星图片,或者都属于月牙形图片等。所述详情主要是指内容和/或样式等,进一步地,所述样式包括大小、颜色、显示位置等。例如,对于数字序列的动画内容,内容可以不同,例如可以分别是1,2,3,4….等。对于属于五角星图片的动画内容,允许五角星图片的大小、颜色和显示位置不同。
在本实施例中,动画播放触发事件可以是直播应用中任何可以触发动画播放的事件,并且根据动画播放触发事件的不同,触发显示的动画内容序列以及动画显示效果均会不同。在本实施例的动画显示流程中,动画内容序列需要自起始动画内容开始,在动画持续时长内完成显示。
其中,对不同动画显示场景而言,动画持续时长可以不同。例如,有些动画显示场景,一次动画显示流程中的动画持续时长为3s、2s等;另一些动画显示场景,一次动画显示流程中的动画持续时长可能为1s、0.5s、5s等。
可选地,可以预先针对动画显示场景设置动画持续时长。另外,在实际应用中,可以通过计时器对动画持续时长进行计时。例如,可以设置计时器的定时时长为动画持续时长;在动画显示流程启动时,启动计时器,当计时器计时结束时,意味着动画持续时长结束,动画显示流程需要结束。
当然,根据动画显示场景的不同,起始动画内容也会有所不同。
可选地,在一些动画显示场景中,不同动画显示流程之间相互独立。简单来说,任一动画显示过程,与其前一动画显示过程和后一动画显示过程没有任何关系。对这些动画场景来说,当动画播放触发事件到来时,可以根据当前动画播放触发事件指示显示的动画内容,设置动画内容序列;相应地,在动画播放触发事件到来时,可以设置动画内容序列中的第一个动画内容作为起始动画内容;对于动画持续时长,可以在当前动画播放触发事件到来时,重置计时器,计时器的定时时长为动画持续时长。
可选地,在另一些动画显示场景中,不同动画显示流程之间存在依赖关系,尤其是相邻动画显示流程之间。简单来说,任一动画显示过程,其前一动画显示过程存在依赖关系,并会对其后一动画显示过程产生影响。对这些动画场景来说,对于首次动画播放触发事件,当该事件到来时,可以根据当前动画播放触发事件指示显示的动画内容,设置动画内容序列;相应地,在该事件到来时,可以设置动画内容序列中的第一个动画内容作为起始动画内容;对于动画持续时长,可以在该事件到来时,重置计时器,计时器的定时时长为动画持续时长。另外,对于非首次动画播放触发事件,当该事件到来时,根据当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置动画内容序列,例如可以将两部分动画内容按序组合在一起形成动画内容序列;相应地,可以在该事件到来时,设置界面中相应动画区域中显示的动画内容作为起始动画内容,该事件到来时动画区域中显示的动画内容实际上就是在当前动画播放触发事件到来时,因前一动画播放触发事件触发而显示到的动画内容;相应地,对于动画持续时长,可以在该事件到来时,重置计时器,计时器的定时时长为动画持续时长。
继续参照步骤102,在本实施例中,采用定时刷新机制刷新直播应用中的界面,刷新频率不做限定,可视直播应用依赖设备的软硬件资源而定。动画显示的实质是不停刷新动画区域的显示内容,故在本实施例的动画显示流程中可结合定时刷新机制。另外,在本实施例中,动画效果主要体现在不同时刻显示不同的动画内容。基于此,可结合定时刷新机制和插值机制,根据动画持续时长以及预设的动画内容变化规律,插值得到动画持续时长内至少一个界面刷新时刻的插补值。不同界面刷新时刻的插补值对应动画内容序列中的不同动画内容。
值得说明的是,上述预设的动画内容变化规律主要是指随时间变化在不同时刻显示不同动画内容的规律。例如,不同动画内容之间可以按照先加速再减速的规律被显示,或者不同动画内容之间可以按照先减速再加速的规律被显示,或者不同动画内容之间可以以匀速方式被显示,或者不同动画内容之间可以按照匀减速的规律被显示,或者不同动画内容之间可以按照匀加速的规律被显示,等等。当然,上述动画内容变化规律除了表示随时间变化在不同时刻显示不同动画内容的规律之外,还可以表示动画内容的属性随时间变化的一些规律。例如,动画内容的颜色随时间渐变(逐渐加深),动画内容的大小随时间渐变(如逐渐变大)等,这样可以实现更加丰富多彩、绚丽的动画效果。
可选地,可以利用插值器(TimeInterpolator)完成上述插值过程。在本实施例中,可以通过动画内容变化规律将动画内容序列的显示过程映射到动画持续时长内,另外,可以根据时间流逝将动画持续时长百分比化。对此,对任一当前时刻,插值器可计算出自动画显示起始时刻开始到当前时刻的时间间隔占动画持续时长的百分比,可表示为:x=(currentTimeMillis()-mStartTime)/duration,其中,x表示当前时刻距离动画显示起始时刻的时间间隔与动画持续时长之间的时间比值,currentTimeMillis()表示当前时刻,mStartTime表示动画显示起始时刻,duration表示动画持续时长。相应地,通过公式y=f(x)表示动画内容变化规律,则插值器可以根据表示动画内容变化规律的公式以及当前时刻的时间比值x,计算出当前时刻的插补值y,该插补值可视为相对起始动画内容的偏移量。
另外,结合定时刷新机制,插值器计算出动画持续时长内各界面刷新时刻距离动画显示起始时刻的时间间隔与动画持续时长之间的时间比值,进而计算出各界面刷新时刻对应的插补值。可选地,若插值器可以预先获得定时刷新机制采用的刷新频率并明确各界面刷新时刻,则可以线下计算各界面刷新时刻对应的插补值。可选地,若插值器无法获得定时刷新机制采用的刷新频率,或者无法根据刷新频率明确各界面刷新时刻,在可以在各界面刷新时刻到达时,根据调用指令实时计算各界面刷新时刻对应的插补值。
继续参照步骤103,可以根据起始动画内容和至少一个界面刷新时刻的插补值,从动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容。例如,可以将界面刷新时刻的插补值作为自起始动画内容开始的偏移量,则结合起始动画内容可以从动画内容序列中确定界面刷新时刻的动画内容。
同理,若可以预先获得定时刷新机制采用的刷新频率并明确各界面刷新时刻,则可以线下确定界面刷新时刻的动画内容。若无法获得定时刷新机制采用的刷新频率,或者无法根据刷新频率明确各界面刷新时刻,在可以在各界面刷新时刻到达时,根据调用指令实时确定界面刷新时刻的动画内容。
继续参照步骤104,依次在至少一个界面刷新时刻,根据至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。其中,在界面刷新时刻,重绘界面中的动画区域,相当于对动画区域进行刷新,刷新前后动画区域显示的动画内容不同,例如刷新前显示“1”,刷新后显示“5”。
在本实施例中,不对动画终止条件做限定,可根据动画显示场景以及动画显示需求而定。例如,动画终止条件可以是动画持续时长结束,或者是用户手动触发终止的事件,或者是新动画触发事件的到来,等等。
在本实施例中,结合插值机制和定时刷新机制,按照动画内容变化规律进行插值计算,可获得动画持续时长内至少一个界面刷新时刻的插补值;根据起始动画内容和至少一个界面刷新时刻的插补值,从待显示的动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容,进而依次在至少一个界面刷新时刻,基于至少一个界面刷新时刻各自所需的动画内容重绘界面中的动画区域,直到满足动画终止条件为止,实现动画效果,并且基于动画内容变化规律可以实现更加灵活、多样性的动画效果。
在本申请上述实施例中,根据应用需求的不同,动画播放触发事件以及动画内容变化规律均会有所不同。下面结合几种具体动画显示场景,给出几个动画显示的实例。
第一实例:
在直播应用中,为了增进用户与主播之间的互动,允许用户向主播赠送虚拟礼物。虚拟礼物,就是虚拟世界中的礼物,是在虚拟世界中,虚拟角色之间为沟通情感而相互馈赠的物品。虚拟礼物可以是数字鲜花、游戏道具、游戏币等虚拟物品。在直播应用中,为了实现更加绚丽的礼物效果,虚拟礼物多以连帧动画的形式展现。
为了便于用户向主播赠送虚拟礼物,在直播间的界面上设有虚拟礼物赠送控件,例如该虚拟礼物赠送控件可以“发送按钮”,或者也可以是“数量选择卡”+“发送按钮”等。“数量选项卡”可以表示点击一次“发送按钮”需要赠送的礼物数量,例如可以是“×100”、“×2”“×300”等。基于此,动画播放触发事件可以是针对虚拟礼物赠送控件的点击事件,简单来说,是指赠送虚拟礼物的事件。该事件可以触发以连帧动画形式显示虚拟礼物以及与虚拟礼物相关的其它信息,例如虚拟礼物的数量等。
在本实例中,重点关注以动画形式显示虚拟礼物的数量。一种以动画形式显示虚拟礼物的数量的方式为:在动画持续时长内,在显示虚拟礼物的动画区域按照从小到大的顺序依次显示虚拟礼物的数量,直到显示到最大数值。可选地,可以将显示虚拟礼物的动画区域称之为combo区。本实例中并不限定combo区的位置以及实现样式。可选地,combo区可以位于直播间界面的左下角,右下角、底部中间区域等。可选地,combo区可主要分为两部分,一部分用于动态显示虚拟礼物,另一部分用于动态显示虚拟礼物的数量。
对于上述赠送虚拟礼物的情况,如图2所示,动画显示流程包括以下步骤:
201、客户端实时捕捉针对虚拟礼物赠送控件的点击事件,该点击事件指示赠送N个同一虚拟礼物,N为自然数。
当捕捉到针对虚拟礼物赠送控件的点击事件时,一方面确定用户需要向当前主播赠送虚拟礼物,另一方面可以确定需要以动画形式显示虚拟礼物以及虚拟礼物的数量。相应地,该点击事件指示赠送N个同一虚拟礼物,N为自然数,例如,N可以是3、10、100或300等。
202、在捕捉到针对虚拟礼物赠送控件的点击事件时,确定当前点击事件指示显示的动画内容、起始动画内容以及动画持续时长。
本实例重点关注虚拟礼物的数量的动态显示过程。为了以动画形式显示虚拟礼物的数量,还需要确定虚拟礼物的数量范围。因此,在捕捉到针对虚拟礼物赠送控件的点击事件时,还需确定N个表示向主播赠送的同一虚拟礼物的数量的递增式数字,即为当前点击事件指示显示的动画内容。
可选地,若针对虚拟礼物赠送控件的点击事件之间彼此独立,或者是首次赠送虚拟礼物,则需要依次显示的虚拟礼物的数量为1,2,3,4,……N,这N个数字作为当前点击事件指示显示的动画内容,构成动画内容序列。相应地,可以将动画内容序列中的第一个动画内容,例如“1”作为起始动画内容。
可选地,若针对虚拟礼物赠送控件的点击事件之间存在依赖关系,并且不是首次赠送虚拟礼物,则需要结合前一点击事件,确定N个表示向主播赠送的同一虚拟礼物的数量的递增式数字,作为当前点击事件指示显示的动画内容。例如,若前一点击事件表示向主播赠送100个“竹子”,当前点击事件表示向主播赠送200个“竹子”,在当前点击事件到来时,combo区显示的“竹子”数量为60,则前一点击事件还有40个数字,即61至100未显示,则需要继续显示240个数字,分别为61至300,则可以根据61至100以及101至300这240个数字形成动画内容序列;其中,61至100为前一点击事件指示显示但尚未显示的数字(即动画内容),而101至300为当前点击事件指示显示的数字(即动画内容)。相应地,可以在当前点击事件到来时,将combo区当前显示的动画内容,例如“60”作为起始动画内容。
另外,在针对虚拟礼物赠送控件的点击事件到来时,可以重置计时器,计时器的定时时长为动画持续时长。在本实例中,动画持续时长主要是指显示虚拟礼物以及虚拟礼物的数量的时间长度。
203、当系统刷新界面时,根据设定的动画持续时长和动画内容变化规律,插值得到当前界面刷新时刻的插补值。
204、根据起始动画内容和当前界面刷新时刻的插补值,从动画内容序列中确定当前界面刷新时刻所需的动画内容。
205、根据当前界面刷新时刻所需的动画内容,重绘界面中的combo区。
206、判断是否满足动画终止条件;若判断结果为否,则返回执行步骤203;若判断结果为是,则结束操作。
在直播应用中,采用定时刷新机制,不断刷新直播应用的界面。可选地,当系统刷新界面时,可以根据设定的动画持续时长和动画内容变化规律,插值得到动画持续时长内当前界面刷新时刻的插补值;;进而;然后,判断是否满足动画终止条件;若判断结果为否,则等待系统再次刷新界面,并在系统再次刷新界面时,返回执行系统刷新界面时的操作;若判断结果为是,则结束操作。举例说明,在combo区上按照界面刷新频率依次显示的虚拟礼物的数量可能为:“×1”,“×2”,“×5”,“×20”,“×40”,“×50”……。
其中,为了使用插值机制,可预先根据动画内容变化规律设置插值器的插值算法。对动画持续时长内的各界面刷新时刻,可以插值器采用插值算法,计算其对应的插补值。可选地,对各界面刷新时刻中的第一界面刷新时刻,插值器可以采用公式y=1.0-(1.0-x)*(1.0-x)进行插值计算;其中,x表示根据第一界面刷新时刻和动画持续时长计算出的时间比值,x介于0和1之间;y表示第一界面刷新时刻的插补值。其中,第一界面刷新时刻可以是动画持续时长内任一界面刷新时刻。
另外,上述方法流程在具体实现时,可参考安卓系统提供的Scroller机制,但具体实现却不完全相同。一种可选的实现方式包括以下步骤:
初始化Scroller,并配置插值器算法为y=1.0-(1.0-x)*(1.0-x);
调用startScroll()启动显示流程,在该函数中可以配置动画内容序列、起始动画内容和动画持续时长等参数;
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;其中,界面刷新频率等可在函数invalidate()中实现,相应地,系统刷新界面时的相关操作可在函数computeScroll()或ondraw()实现;
执行函数computeScroll()或ondraw(),以重绘combo区;
若动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
第二实例:
在直播应用中,服务端可实时统计每个直播间的在线人数,将统计出的在线人数推送至客户端,由客户端实时显示每个直播间的在线人数,以便用户及时了解同时观看相同直播的人数。一般来说,服务端周期性地向客户端推送在线人数,客户端接收到服务端推送的在线人数后更新显示的在线人数。如果客户端每收到一次服务端推送的在线人数,更新一次显示的在线人数,在线人数跳变的时间间隔较大,实时效果较差。
为了实现一种实时显示在线人数的效果,可以在服务端两次推送在线人数之间,以动画形式显示在线人数。基于此,动画播放触发事件可以是在线人数的推送事件,简单来说,是指服务器向客户端推送在线人数的事件。该事件可以触发以连帧动画形式显示在线人数,从而产生实时显示在线人数的效果。
在本实例中,以动画形式显示在线人数的方式为:在动画持续时长内,在显示在线人数的动画区域以较快的频率跳变性地显示在线人数,直到显示到服务端推送的数值。本实例中并不限定显示在线人数的动画区域的位置以及实现样式。可选地,显示在线人数的动画区域可以位于直播间界面的右上角,左上角、顶部中间区域等。
对于上述显示在线人数的情况,如图3所示,动画显示流程包括以下步骤:
301、客户端实时捕捉服务端推送在线人数的事件,该事件指示显示所推送的人数M,M为大于或等于0的整数。
当捕捉到服务端推送在线人数的事件时,可以确定需要以动画形式显示在线人数。相应地,该事件指示显示所推送的人数M,M为大于或等于0的整数,例如,M可以是3、10、60或200等。
302、在捕捉到服务端推送在线人数的事件时,确定当前事件指示显示的动画内容、起始动画内容以及动画持续时长。
为了以动画形式显示在线人数,还需要确定在线人数的跳变范围。因此,在捕捉到服务端推送在线人数的事件时,还需确定从K变化到M的至少一个数字,作为当前事件指示显示的动画内容。其中,K是捕捉到在线人数推送事件时直播间界面上显示的在线人数,K为大于或等于0的整数。假设当前显示的在线人数为100,服务端推送过来的在线人数为180,则为了达到实时效果,可以依次显示103、120、129、……169、180等,其中,103、120、129、……169、180等数字即为当前事件指示显示的动画内容。其中,从K变化到M的至少一个数字具体可由动画内容变化规律而定。相应地,在捕捉到服务端推送在线人数的事件时,可以设置当前显示的在线人数,例如100,作为起始动画内容。
另外,在在线人数的推送事件到来时,可以重置计时器,计时器的定时时长为动画持续时长。在本实例中,可以将服务端两次推送在线人数的时间间隔作为动画持续时长。
303、当系统刷新界面时,根据设定的动画持续时长和动画内容变化规律,插值得到当前界面刷新时刻的插补值。
304、根据起始动画内容和当前界面刷新时刻的插补值,从动画内容序列中确定当前界面刷新时刻所需的动画内容。
305、根据当前界面刷新时刻所需的动画内容,重绘界面中显示在线人数的区域。
306、判断是否满足动画终止条件;若判断结果为否,则返回执行步骤303;若判断结果为是,则结束操作。
在直播应用中,采用定时刷新机制,不断刷新直播应用的界面。可选地,当系统刷新界面时,可以根据设定的动画持续时长和动画内容变化规律,插值得到动画持续时长内当前界面刷新时刻的插补值;根据起始动画内容和当前界面刷新时刻的插补值,从动画内容序列中确定当前界面刷新时刻所需的动画内容;进而根据当前界面刷新时刻所需的动画内容,重绘界面中显示在线人数的区域;然后,判断是否满足动画终止条件;若判断结果为否,则等待系统再次刷新界面,并在系统再次刷新界面时,返回执行系统刷新界面时的操作;若判断结果为是,则结束操作。举例说明,在显示线人数的区域上按照界面刷新频率依次显示的在线人数可能为:“100”,“109”,“98”,“115”,“140”……。
其中,为了使用插值机制,可预先根据动画内容变化规律设置插值器的插值算法。对动画持续时长内的各界面刷新时刻,可以插值器采用插值算法,计算其对应的插补值。可选地,对各界面刷新时刻中的第一界面刷新时刻,插值器可以采用公式y=Math.cos((x+1)*Math.π)/2.0进行插值计算;其中,x表示根据第一界面刷新时刻和动画持续时长计算出的时间比值,x介于0和1之间;y表示第一界面刷新时刻的插补值。其中,第一界面刷新时刻可以是动画持续时长内任一界面刷新时刻。其中,公式y=Math.cos((x+1)*Math.π)/2.0表示一种先加速再减速的插值算法。举例说明,以公式y=Math.cos((x+1)*Math.π)/2.0插值得到的在线人数显示效果可以为:“100”,“105”,“109”,“106”,“102”。
另外,上述方法流程在具体实现时,可参考安卓系统提供的Scroller机制,但具体实现却不完全相同。一种可选的实现方式包括以下步骤:
初始化Scroller,并配置插值器算法为y=Math.cos((x+1)*Math.π)/2.0;
调用startScroll()启动显示流程,在该函数中可以配置动画内容序列、起始动画内容和动画持续时长等参数;
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;其中,界面刷新频率等可在函数invalidate()中实现,相应地,系统刷新界面时的相关操作可在函数computeScroll()或ondraw()实现;
执行函数computeScroll()或ondraw(),以重绘combo区;
若动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
第三实例:
在直播应用中,可以通过进度条直观显示某些事件的进度,该事件可称为进度条关联的事件。例如,可以通过进度条显示主播经验值成长进度。本实施例并不限定进度条的实现样式,例如可以是条形或圆环形等。当与进度条关联的事件的进度发生变化时,需要通过进度条同步显示出来。基于此,动画播放触发事件可以是针对进度条的进度变化事件,简单来说,是指与进度条关联的事件的进度发生变化的事件。该事件可以触发跟随事件进度的变化以连帧动画形式显示事件进度。
对于上述显示进度条的情况,如图4所示,动画显示流程包括以下步骤:
401、客户端实时捕捉进度变化事件,该事件指示显示进度条的长度L,L为大于或等于0的数。
当捕捉进度变化事件时,可以确定需要改变进度条显示的进度。相应地,该事件指示显示进度条的长度L,L为大于或等于0的数,例如,L可以是1、1.5、2.或5等。
402、在捕捉到进度变化事件时,确定当前进度变化事件指示显示的动画内容、起始动画内容以及动画持续时长。
为了以动画形式显示进度条,还需要确定进度条的跳变范围。因此,在捕捉到进度变化事件时,还需确定从L0变化到L的步数,作为当前事件指示显示的动画内容。其中,L0是捕捉到进度变化事件时进度条的长度,L0为大于或等于0的数。其中,从L0变化到L的步数具体可由动画内容变化规律而定。相应地,在捕捉到进度变化事件时,可以设置当前进度条的长度,作为起始动画内容。
另外,在进度变化事件到来时,可以重置计时器,计时器的定时时长为动画持续时长。
403、当系统刷新界面时,根据设定的动画持续时长和动画内容变化规律,插值得到当前界面刷新时刻的插补值。
404、根据起始动画内容和当前界面刷新时刻的插补值,从动画内容序列中确定当前界面刷新时刻所需的动画内容。
405、根据当前界面刷新时刻所需的动画内容,重绘界面中进度条区域。
406、判断是否满足动画终止条件;若判断结果为否,则返回执行步骤403;若判断结果为是,则结束操作。
在直播应用中,采用定时刷新机制,不断刷新直播应用的界面。可选地,当系统刷新界面时,可以根据设定的动画持续时长和动画内容变化规律,插值得到动画持续时长内当前界面刷新时刻的插补值;根据起始动画内容和当前界面刷新时刻的插补值,从动画内容序列中确定当前界面刷新时刻所需的动画内容;进而根据当前界面刷新时刻所需的动画内容,重绘界面中进度条区域;然后,判断是否满足动画终止条件;若判断结果为否,则等待系统再次刷新界面,并在系统再次刷新界面时,返回执行系统刷新界面时的操作;若判断结果为是,则结束操作。举例说明,按照界面刷新频率依次显示的进度条长度可能为:“1”,“1.9”,“2.5”,“3”,“5”……。
其中,为了使用插值机制,可预先根据动画内容变化规律设置插值器的插值算法。对动画持续时长内的各界面刷新时刻,可以插值器采用插值算法,计算其对应的插补值。可选地,对各界面刷新时刻中的第一界面刷新时刻,插值器可以采用公式y=x进行插值计算;其中,x表示根据第一界面刷新时刻和动画持续时长计算出的时间比值,x介于0和1之间;y表示第一界面刷新时刻的插补值。其中,第一界面刷新时刻可以是动画持续时长内任一界面刷新时刻。其中,公式y=x表示一种匀速的插值算法。举例说明,采用公式y=x所示插值算法,一种依次显示的进度条的长度可以为:“1”,“2”,“3”,“4”,“5”。
另外,上述方法流程在具体实现时,可参考安卓系统提供的Scroller机制,但具体实现却不完全相同。一种可选的实现方式包括以下步骤:
初始化Scroller,并配置插值器算法为y=x;
调用startScroll()启动显示流程,在该函数中可以配置动画内容序列、起始动画内容和动画持续时长等参数;
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;其中,界面刷新频率等可在函数invalidate()中实现,相应地,系统刷新界面时的相关操作可在函数computeScroll()或ondraw()实现;
执行函数computeScroll()或ondraw(),以重绘combo区;
若动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤203的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。
图5为本申请又一实施例提供的动画显示装置的结构示意图。如图5所示,该装置包括:设置单元51、插值器52和重绘单元53。
设置单元51,用于响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长。
插值器52,用于根据所述动画持续时长以及预设的动画内容变化规律,插值得到所述动画持续时长内至少一个界面刷新时刻的插补值。
重绘单元53,用于根据所述起始动画内容和所述至少一个界面刷新时刻的插补值,从所述动画内容序列中确定所述至少一个界面刷新时刻各自所需的动画内容,以及依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
在一可选实施方式中,如图5所示,所述装置还包括:计时器54。计时器54的定时时长为所述动画持续时长。
基于计时器54,设置单元51具体可用于:
在所述当前动画播放触发事件到来时,根据所述当前动画播放触发事件指示显示的动画内容,或者根据所述当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置所述动画内容序列;
在所述当前动画播放触发事件到来时,设置所述动画内容序列中的第一个动画内容,或者设置所述动画区域中显示的动画内容作为所述起始动画内容;
在所述当前动画播放触发事件到来时,重置所述计时器54。
在一可选实施方式中,设置单元51还用于在响应所述当前动画播放触发事件之前,捕捉针对虚拟礼物赠送控件的点击事件,作为所述当前动画播放触发事件;所述点击事件指示赠送N个同一虚拟礼物,N为自然数。相应地,设置单元51在设置动画内容序列时,还用于:将N个表示所述同一虚拟礼物的数量的递增式数字,作为所述点击事件指示显示的动画内容。
进一步,对所述至少一个界面刷新时刻中的第一界面刷新时刻,插值器52具体可用于根据公式y=1.0-(1.0-x)*(1.0-x)进行插值计算;x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;y表示所述第一界面刷新时刻的插补值。第一界面刷新时刻可以是至少一个界面刷新时刻中的任一界面刷新时刻。
在一可选实施方式中,设置单元51还用于在响应所述当前动画播放触发事件之前,捕捉针对在线人数的推送事件,作为所述当前动画播放触发事件;所述推送事件指示显示所推送的人数M,M为大于或等于0的整数。相应地,设置单元51在设置动画内容序列时,还用于:将从K变化到M的至少一个数字,作为所述推送事件指示显示的动画内容,K为当前显示的在线人数,K为大于或等于0的整数。
进一步,对所述至少一个界面刷新时刻中的第一界面刷新时刻,插值器52具体可用于根据公式y=Math.cos((x+1)*Math.π)/2.0进行插值计算;x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;y表示所述第一界面刷新时刻的插补值。第一界面刷新时刻可以是至少一个界面刷新时刻中的任一界面刷新时刻。
在一可选实施方式中,设置单元51还用于在响应所述当前动画播放触发事件之前,捕捉针对进度条的进度变化事件,作为所述当前动画播放触发事件;所述进度变化事件指示显示进度条的长度L,L为大于或等于0的数。相应地,设置单元51在设置动画内容序列时,还用于:将从L0变化到L的步数,作为所述进度变化事件指示显示的动画内容,L0为当前进度条的长度,L0为大于或等于0的数。
进一步,对所述至少一个界面刷新时刻中的第一界面刷新时刻,插值器52具体可用于根据公式y=x进行插值计算;x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;y表示所述第一界面刷新时刻的插补值。第一界面刷新时刻可以是至少一个界面刷新时刻中的任一界面刷新时刻。
在一可选实施方式中,重绘单元53具体可用于:执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;执行函数computeScroll()或ondraw(),以重绘所述动画区域;若所述动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
本实施例提供的动画显示装置可用于执行前述方法实施例的流程,在此不再赘述。
本实施例提供的动画显示装置,结合插值机制和定时刷新机制,按照动画内容变化规律进行插值计算,可获得动画持续时长内至少一个界面刷新时刻的插补值;根据起始动画内容和至少一个界面刷新时刻的插补值,从待显示的动画内容序列中确定至少一个界面刷新时刻各自所需的动画内容,进而依次在至少一个界面刷新时刻,基于至少一个界面刷新时刻各自所需的动画内容重绘界面中的动画区域,直到满足动画终止条件为止,实现动画效果,并且基于动画内容变化规律可以实现更加灵活、多样性的动画效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种动画显示方法,其特征在于,包括:
响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长;
根据所述动画持续时长以及预设的动画内容变化规律,插值得到所述动画持续时长内至少一个界面刷新时刻的插补值;
根据所述起始动画内容和所述至少一个界面刷新时刻的插补值,从所述动画内容序列中确定所述至少一个界面刷新时刻各自所需的动画内容;以及
依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
2.根据权利要求1所述的方法,其特征在于,所述响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长,包括:
在所述当前动画播放触发事件到来时,根据所述当前动画播放触发事件指示显示的动画内容,或者根据所述当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置所述动画内容序列;
在所述当前动画播放触发事件到来时,设置所述动画内容序列中的第一个动画内容,或者设置所述动画区域中显示的动画内容作为所述起始动画内容;
在所述当前动画播放触发事件到来时,重置计时器,所述计时器的定时时长为所述动画持续时长。
3.根据权利要求2所述的方法,其特征在于,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对虚拟礼物赠送控件的点击事件,作为所述当前动画播放触发事件;所述点击事件指示赠送N个同一虚拟礼物,N为自然数;
所述动画内容序列的设置步骤,还包括:
将N个表示所述同一虚拟礼物的数量的递增式数字,作为所述点击事件指示显示的动画内容。
4.根据权利要求3所述的方法,其特征在于,对所述至少一个界面刷新时刻中的第一界面刷新时刻,所述第一界面刷新时刻的插补值的插值步骤,包括:
根据公式y=1.0-(1.0-x)*(1.0-x)进行插值计算;
x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;
y表示所述第一界面刷新时刻的插补值。
5.根据权利要求2所述的方法,其特征在于,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对在线人数的推送事件,作为所述当前动画播放触发事件;所述推送事件指示显示所推送的人数M,M为大于或等于0的整数;
所述动画内容序列的设置步骤,还包括:
将从K变化到M的至少一个数字,作为所述推送事件指示显示的动画内容,K为当前显示的在线人数,K为大于或等于0的整数。
6.根据权利要求5所述的方法,其特征在于,对所述至少一个界面刷新时刻中的第一界面刷新时刻,所述第一界面刷新时刻的插补值的插值步骤,包括:
根据公式y=Math.cos((x+1)*Math.π)/2.0进行插值计算;
x表示根据所述第一界面刷新时刻和所述动画持续时长计算出的时间比值,x介于0和1之间;
y表示所述第一界面刷新时刻的插补值。
7.根据权利要求2所述的方法,其特征在于,响应于所述当前动画播放触发事件之前,所述方法还包括:
捕捉针对进度条的进度变化事件,作为所述当前动画播放触发事件;所述进度变化事件指示显示进度条的长度L,L为大于或等于0的数;
所述动画内容序列的设置步骤,还包括:
将从L0变化到L的步数,作为所述进度变化事件指示显示的动画内容,L0为当前进度条的长度,L0为大于或等于0的数。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止,包括:
执行函数invalidate()刷新界面,以触发函数computeScroll()或ondraw()的重写;
执行函数computeScroll()或ondraw(),以重绘所述动画区域;
若所述动画终止条件尚未满足,返回继续执行函数invalidate()刷新界面。
9.一种动画显示装置,其特征在于,包括:
设置单元,用于响应于当前动画播放触发事件,设置待显示的动画内容序列、起始动画内容和动画持续时长;
插值器,用于根据所述动画持续时长以及预设的动画内容变化规律,插值得到所述动画持续时长内至少一个界面刷新时刻的插补值;
重绘单元,用于根据所述起始动画内容和所述至少一个界面刷新时刻的插补值,从所述动画内容序列中确定所述至少一个界面刷新时刻各自所需的动画内容,以及依次在所述至少一个界面刷新时刻,根据所述至少一个界面刷新时刻各自所需的动画内容,重绘界面中的动画区域,直到满足动画终止条件为止。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:计时器,所述计时器的定时时长为所述动画持续时长;
所述设置单元具体用于:
在所述当前动画播放触发事件到来时,根据所述当前动画播放触发事件指示显示的动画内容,或者根据所述当前动画播放触发事件指示显示的动画内容以及前一动画播放触发事件指示显示但尚未显示的动画内容,设置所述动画内容序列;
在所述当前动画播放触发事件到来时,设置所述动画内容序列中的第一个动画内容,或者设置所述动画区域中显示的动画内容作为所述起始动画内容;
在所述当前动画播放触发事件到来时,重置所述计时器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710094260.3A CN106878799A (zh) | 2017-02-21 | 2017-02-21 | 一种动画显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710094260.3A CN106878799A (zh) | 2017-02-21 | 2017-02-21 | 一种动画显示方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106878799A true CN106878799A (zh) | 2017-06-20 |
Family
ID=59167549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710094260.3A Pending CN106878799A (zh) | 2017-02-21 | 2017-02-21 | 一种动画显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106878799A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108810132A (zh) * | 2018-06-07 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、终端、服务器及存储介质 |
CN110019855A (zh) * | 2017-12-04 | 2019-07-16 | 沪江教育科技(上海)股份有限公司 | 根据时间轴控制动效的方法、装置、存储介质及电子设备 |
CN112328351A (zh) * | 2020-11-25 | 2021-02-05 | Oppo广东移动通信有限公司 | 动画显示方法、动画显示装置及终端设备 |
CN113038239A (zh) * | 2021-04-12 | 2021-06-25 | 上海哔哩哔哩科技有限公司 | 弹幕设置方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682458A (zh) * | 2011-03-15 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种关键帧动画曲线的多特技多参数的同时调节方法 |
CN103176788A (zh) * | 2011-12-26 | 2013-06-26 | 中国移动通信集团福建有限公司 | 一种手机桌面动画内容平滑过渡的方法和装置 |
CN103491298A (zh) * | 2013-09-13 | 2014-01-01 | 惠州Tcl移动通信有限公司 | 多区域实时合成拍照方法及触控终端 |
CN104808984A (zh) * | 2015-03-24 | 2015-07-29 | 魅族科技(中国)有限公司 | 显示界面刷新方法及装置 |
CN105007532A (zh) * | 2015-06-30 | 2015-10-28 | 北京东方艾迪普科技发展有限公司 | 一种动画播放的方法和设备 |
-
2017
- 2017-02-21 CN CN201710094260.3A patent/CN106878799A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682458A (zh) * | 2011-03-15 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | 一种关键帧动画曲线的多特技多参数的同时调节方法 |
CN103176788A (zh) * | 2011-12-26 | 2013-06-26 | 中国移动通信集团福建有限公司 | 一种手机桌面动画内容平滑过渡的方法和装置 |
CN103491298A (zh) * | 2013-09-13 | 2014-01-01 | 惠州Tcl移动通信有限公司 | 多区域实时合成拍照方法及触控终端 |
CN104808984A (zh) * | 2015-03-24 | 2015-07-29 | 魅族科技(中国)有限公司 | 显示界面刷新方法及装置 |
CN105007532A (zh) * | 2015-06-30 | 2015-10-28 | 北京东方艾迪普科技发展有限公司 | 一种动画播放的方法和设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019855A (zh) * | 2017-12-04 | 2019-07-16 | 沪江教育科技(上海)股份有限公司 | 根据时间轴控制动效的方法、装置、存储介质及电子设备 |
CN110019855B (zh) * | 2017-12-04 | 2023-07-21 | 沪江教育科技(上海)股份有限公司 | 根据时间轴控制动效的方法、装置、存储介质及电子设备 |
CN108810132A (zh) * | 2018-06-07 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、终端、服务器及存储介质 |
CN108810132B (zh) * | 2018-06-07 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 动画显示方法、装置、终端、服务器及存储介质 |
CN112328351A (zh) * | 2020-11-25 | 2021-02-05 | Oppo广东移动通信有限公司 | 动画显示方法、动画显示装置及终端设备 |
CN113038239A (zh) * | 2021-04-12 | 2021-06-25 | 上海哔哩哔哩科技有限公司 | 弹幕设置方法、装置及系统 |
CN113038239B (zh) * | 2021-04-12 | 2023-04-11 | 上海哔哩哔哩科技有限公司 | 弹幕设置方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106878799A (zh) | 一种动画显示方法及装置 | |
JP7498273B2 (ja) | 仮想アイテムの処理方法及び装置 | |
US9032307B2 (en) | Computational delivery system for avatar and background game content | |
US20170103601A1 (en) | Systems and methods of gaming machine image transitions | |
WO2013028159A1 (en) | 2.5-dimensional graphical object social network | |
US20080182647A1 (en) | 3D rendering of 2D legacy game assets | |
CN109771942A (zh) | 用于卡图匹配游戏的系统和方法 | |
CN107122099A (zh) | 关联用户界面的方法、装置、存储介质、处理器和终端 | |
CN110302530A (zh) | 虚拟单位控制方法、装置、电子设备和存储介质 | |
US10685472B1 (en) | Animation brushes | |
Smith et al. | Unity 5. x Cookbook | |
JPWO2020086441A5 (zh) | ||
US20230033434A1 (en) | System and method for managing access to online digital collectibles | |
WO2023125581A1 (zh) | 一种基于卡片的交互方法、装置、计算机设备及存储介质 | |
CN106527864A (zh) | 一种界面显示方法及装置 | |
Chen et al. | Research and development of virtual reality game based on unreal engine 4 | |
US20130083034A1 (en) | Animation engine decoupled from animation catalog | |
CN113797534A (zh) | 一种维持画面流畅度的自适应方法和装置 | |
CN107277633B (zh) | 一种展示直播间礼物效果的方法及装置 | |
Madge et al. | The design of a clicker game for text labelling | |
Smith | Unity 2018 Cookbook: Over 160 recipes to take your 2D and 3D game development to the next level | |
CN106897138A (zh) | 一种基于悬浮窗的优化操作系统运行环境的方法与装置 | |
Lei et al. | Research and Implementation of Interaction Design on Dunhuang Culture | |
WO2024060914A1 (zh) | 虚拟对象的生成方法、装置、设备、介质和程序产品 | |
CN112686984B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Ying Inventor after: Zhang Pengyi Inventor after: Zhang Juyuan Inventor before: Zhang Ying Inventor before: Zhang Pengyi |
|
CB03 | Change of inventor or designer information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |
|
RJ01 | Rejection of invention patent application after publication |