CN103177465B - 动画控制方法及系统 - Google Patents
动画控制方法及系统 Download PDFInfo
- Publication number
- CN103177465B CN103177465B CN201110442422.0A CN201110442422A CN103177465B CN 103177465 B CN103177465 B CN 103177465B CN 201110442422 A CN201110442422 A CN 201110442422A CN 103177465 B CN103177465 B CN 103177465B
- Authority
- CN
- China
- Prior art keywords
- animation
- time
- next frame
- periodicity
- duration
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种动画控制方法,包括以下步骤:获取动画开始时间及动画当前时间;计算动画已播放时间;判断已播放时间是否小于动画总时长和/或下一帧动画位置是否超出动画终点位置;若动画已播放时间大于等于动画总时长和/或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。上述动画控制方法将动画控制在规定的时间内,在动画终点位置绘制终点帧并退出;这样,可保证动画的完整性和时间可控,动画效果好。此外,还提供了一种动画控制系统。
Description
【技术领域】
本发明涉及计算机技术领域,尤其涉及一种动画控制方法。
【背景技术】
开放是互联网发展的必然趋势,基于即时通讯的开放平台也应用越来越广泛。开放平台可以通过AppStore(应用市场)接入大量的第三方应用,用户可以根据需要安装自己的应用。
开放平台中的界面切换,其实就是将界面从屏幕左边往右边或从右边往左边滑动的过程,在滑动的过程中加入动画特效,例如匀速、匀减速等效果。传统的动画是需要把每帧都绘制完才结束动画,这样,在低配置的机器上,绘制每帧的时间会很长,且时间不可控,导致动画体验差。
【发明内容】
鉴于此,有必要提供一种动画时长可控,动画效果好的动画控制方法。
一种动画控制方法,包括以下步骤:
获取动画开始时间及动画当前时间;
计算动画已播放时间;
判断已播放时间是否小于动画总时长和/或下一帧动画位置是否超出动画终点位置;
若动画已播放时间大于等于动画总时长和/或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。
此外,还有必要提供一种动画时长可控,动画效果好的动画控制系统。
一种动画控制系统,包括:
时间获取模块,用于获取动画开始时间及当前时间;
时间计算模块,与所述时间获取模块连接,计算动画已播放时间;
判断模块,与所述时间计算模块相连,用于判断已播放时间是否小于动画总时长和/或下一帧动画位置是否超出动画终点位置;
控制模块,与所述判断模块相连,若动画已播放时间大于等于动画总时长和/或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。
上述动画控制方法及系统将动画控制在规定的时间内,在动画终点位置绘制终点帧并退出,这样,可保证动画的完整性和时间可控,动画效果好。
【附图说明】
图1为本发明实施例一所述一种界面动画移动的方法流程图;
图2为获取动画开始时间的流程图;
图3为计算动画已播放时间的流程图;
图4为计算下一帧动画位置的流程图;
图5为本发明实施例二所述一种界面动画移动的方法流程图;
图6为获取动画开始时间的流程图;
图7为计算动画已播放时间的流程图;
图8为计算下一帧动画位置的流程图;
图9为绘制动画终点帧并退出的流程图;
图10为一实施例的动画控制系统模块图;
图11为另一实施例的动画控制系统模块图。
【具体实施方式】
如图1~图4所示,为实施例一提供的一种动画控制方法的流程图,包括以下步骤:
S102:获取动画开始时间。动画内容可以是广告、短剧、窗口或桌面等界面切换时的动画。本实施例中的动画可以是桌面切换时的动画效果,例如应用平台的桌面与操作系统桌面切换时的动画效果。
在优选实施例中,步骤S102包括步骤S1021和步骤S1022:
S1021:累加计算CPU上电后到动画开始时的周期数。该周期数可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API(ApplicationProgrammingInterface,应用程序接口)中的QueryPerformanceCounter获得。
S1022:将周期数与CPU频率的比值作为动画开始时间。CPU频率可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API中的QueryPerformanceFrequency获得。
步骤S1021和步骤S1022使用CPU上电后到动画开始时的周期数精确计时,保证动画每一帧的精确计算。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。
S103:获取动画当前时间,并计算动画已播放时间。
在优选实施例中,步骤S103包括步骤S1031、步骤S1032以及步骤S1033:
S1031:累加计算CPU上电后到当前动画的周期数。该周期数可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API(ApplicationProgrammingInterface,应用程序接口)中的QueryPerformanceCounter获得。
S1032:将当前动画的周期数与CPU频率的比值作为动画当前时间。CPU频率可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API中的QueryPerformanceFrequency获得。
S1033:将动画当前时间与动画开始时间的差值作为动画已播放时间。
步骤S1031、步骤S1032以及步骤S1033使用CPU上电后到动画开始时的周期数精确计时,保证动画每一帧的精确计算。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。
S104:判断已播放时间是否小于动画总时长。
S105:若动画已播放时间小于动画总时长,则计算下一帧动画位置,否则跳到S108绘制动画终点帧并退出的步骤。
在优选实施例中,步骤S105包括步骤S1051和步骤S1052:
S1051:获取动画位置绘制逻辑。绘制逻辑可以根据需要进行设定,例如匀速运动、加速运动和减速运动等。动画位置绘制逻辑可以通过动画所处的像素位置离动画开始所处的像素位置的距离进行控制。
S1052:根据所述绘制逻辑计算下一帧动画所处的像素位置。例如,在匀速运动的动画控制逻辑中,下一帧动画所处的像素位置离动画开始所处的像素位置的距离S与动画已播放时间t及动画终点位置到动画开始位置的像素数距离W成正比,而与动画总时长T成反比。其中,t为变化的量,可以采用上述方式获得。T及W在动画设计好后即已经确定。可以理解,动画位置绘制逻辑还可以是其他方式,这取决于需要什么样的动画效果,如果需要指数加速运动效果,则可以采用以下动画位置绘制逻辑:下一帧动画所处的像素位置离动画开始所处的像素位置的距离S为将动画已播放时间t与动画总时长T的比值作为动画终点位置到动画开始位置的像素数距离W的指数。通常,在实际应用中,例如在桌面切换的动画中,W为我们计算机屏幕的宽度像素数,即用来对计算机屏幕界面切换,实现计算机桌面滑动的动画效果。
S106:判断下一帧动画位置是否超出动画终点位置。
S107:若下一帧动画位置未超出动画终点位置,则执行下一帧动画,否则跳到S108绘制动画终点帧并退出的步骤。在界面切换的动画中,执行下一帧动画可以是将界面移动到下一帧动画应该处于的位置。在其他动画中,执行下一帧动画可以是界面内的元素发生变化等。
S108:绘制动画终点帧并退出。在优选的实施方式中,绘制动画终点帧并退出之前只执行动画的命令而不作其他任何操作,即上述过程中使用阻塞式的控制方案,保证动画的绘制过程不处理任何无关事情(SendMessage、PostMessage、退出程序消息、用户鼠标键盘操作、无关的绘制以及Timer消息等),从而保证动画的流畅性。
在其他实施例中,所述获取动画开始时间的步骤为用系统相应的接口(例如在windows操作系统中,可以采用QueryPerformanceCounter)获得CPU上电后到动画开始时的周期数;
所述获取动画当前时间的步骤为用系统相应的接口(例如在windows操作系统中,可以采用QueryPerformanceCounter)获得当前CPU的周期数;
所述判断已播放时间是否小于动画总时长的步骤为判断当前CPU的周期数是否小于结束周期数,所述结束周期数为动画开始时的周期数加动画时长与CPU频率的乘积。如果当前CPU的周期数小于结束周期数,表明播放时间小于动画总时长,反之亦然。
通过上述运算方式,可以将步骤S1032中的获得比值替代为乘法,从而可以减少运算量,进一步使得动画运行过程中更加流畅。
如图5~图9所示,为实施例2提供的一种动画控制方法的流程图,本实施例中,动画内容为窗口或桌面等界面切换时的动画,该动画控制方法包括以下步骤:
S202:将需要移动的原始界面截图。
S203:隐藏原始界面,用截图替换原始界面。
步骤S202和步骤203因为使用原始界面截图替换了原始界面,不需要对每一帧动画帧中个各个元素进行绘制,提高了动画的流畅度。在传统的动画中,例如在应用平台的桌面与操作系统桌面切换时,需要对桌面上的图标、字体、背景图片等逐一进行绘制后方能显示,通过截图则只需绘制截图,减少了处理量,从而提高动画的流畅度。
S204:获取动画开始时间。本实施例中的动画可以是桌面切换时的动画效果,例如应用平台的桌面与操作系统桌面切换时的动画效果。
在优选实施例中,步骤S204包括步骤S2041和步骤S2042:
S2041:累加计算CPU上电后到动画开始时的周期数。该周期数可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API(ApplicationProgrammingInterface,应用程序接口)中的QueryPerformanceCounter获得。
S2042:用周期数除CPU的频率得出动画开始时间。将周期数与CPU频率的比值作为动画开始时间。CPU频率可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API中的QueryPerformanceFrequency获得。
步骤S2041和步骤S2042使用CPU上电后到动画开始时的周期数精确计时,保证动画每一帧的精确计算。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。
S205:获取动画当前时间,并计算动画已播放时间;
在优选实施例中,步骤S205包括步骤S2051、步骤S2052以及步骤S2053:
S2051:累加计算CPU上电后到当前动画的周期数。该周期数可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API(ApplicationProgrammingInterface,应用程序接口)中的QueryPerformanceCounter获得。
S2052:将当前动画的周期数与CPU频率的比值作为动画当前时间。CPU频率可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API中的QueryPerformanceFrequency获得。
S2053:将动画当前时间与动画开始时间的差值作为动画已播放时间。
步骤S2051、步骤S2542以及步骤S2053使用CPU上电后到动画开始时的周期数精确计时,保证动画每一帧的精确计算。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。
S206:判断已播放时间是否小于动画总时长。
S207:若动画已播放时间小于动画总时长,则计算下一帧动画位置,否则跳到S210绘制动画终点帧并退出的步骤。
在优选实施例中,步骤S207包括步骤S2071和步骤S2072:
S2071:获取动画位置绘制逻辑。绘制逻辑可以根据需要进行设定,例如匀速运动、加速运动和减速运动等。动画位置绘制逻辑可以通过动画所处的像素位置离动画开始所处的像素位置的距离进行控制。
S2072:根据所述绘制逻辑计算下一帧动画所处的像素位置。例如,在匀速运动的动画控制逻辑中,下一帧动画所处的像素位置离动画开始所处的像素位置的距离S与动画已播放时间t及动画终点位置到动画开始位置的像素数距离W成正比,而与动画总时长T成反比。其中,t为变化的量,可以采用上述方式获得。T及W在动画设计好后即已经确定。可以理解,动画位置绘制逻辑还可以是其他方式,这取决于需要什么样的动画效果,如果需要指数加速运动效果,则可以采用以下动画位置绘制逻辑:下一帧动画所处的像素位置离动画开始所处的像素位置的距离S为将动画已播放时间t与动画总时长T的比值作为动画终点位置到动画开始位置的像素数距离W的指数。通常,在实际应用中,例如在桌面切换的动画中,W为我们计算机屏幕的宽度像素数,即用来对计算机屏幕界面切换,实现计算机桌面滑动的动画效果。
S208:判断下一帧动画位置是否超出动画终点位置。
S209:若下一帧动画位置未超出动画终点位置,则执行下一帧动画,否则跳到S210绘制动画终点帧并退出的步骤。在界面切换的动画中,执行下一帧动画可以是将界面移动到下一帧动画应该处于的位置。
S210:绘制动画终点帧并退出。
在优选实施例中,步骤S210包括步骤S2101和步骤S2102:
S2101:显示原始界面;
S2102:删除截图。
在其他实施例中,所述获取动画开始时间的步骤为用系统相应的接口(例如在windows操作系统中,可以采用QueryPerformanceCounter)获得CPU上电后到动画开始时的周期数;
所述获取动画当前时间的步骤为用系统相应的接口(例如在windows操作系统中,可以采用QueryPerformanceCounter)获得当前CPU的周期数;
所述判断已播放时间是否小于动画总时长的步骤为判断当前CPU的周期数是否小于结束周期数,所述结束周期数为动画开始时的周期数加动画时长与CPU频率的乘积。如果当前CPU的周期数小于结束周期数,表明播放时间小于动画总时长,反之亦然。
通过上述运算方式,可以将步骤S1032中的获得比值替代为乘法,从而可以减少运算量,进一步使得动画运行过程中更加流畅。
上述实施例中,通过先判断播放时间是否小于动画总时长,再判断下一帧动画位置是否超出动画终点位置的方式来控制动画在终点位置结束且在动画总时长内结束。在其他实施例中,也可以只判断播放时间是否小于动画总时长来控制动画在总时长内结束或只判断下一帧动画位置是否超出动画终点位置来控制动画在终点位置结束。另外,还可以先判断下一帧动画位置是否超出动画终点位置,再判断播放时间是否小于动画总时长。上述各种实施方式的动画控制方法可以归纳为如下步骤:
获取动画开始时间及动画当前时间;
计算动画已播放时间;
判断已播放时间是否小于动画总时长和/或下一帧动画位置是否超出动画终点位置;
若动画已播放时间大于等于动画总时长和/或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。
具体应用中,可以根据需要的动画效果确定绘制逻辑。但是,传统的绘制逻辑存在缺陷,例如界面动画提前到达终点位置,或者总是到达不了终点。这样,界面动画体验就不好。上述实施方式的动画控制方法可使动画一定在终点位置结束且在动画总时长内结束。
上述动画控制方法在动画总时长到来时或到达动画终点位置时绘制动画终点帧,避免了现有技术中绘制每一帧动画中由于设备配置低的原因,绘制每帧的时间会很长,且时间不可控,导致动画体验差的情况。上述动画控制方法可以有效的完成整个动画,使界面最后停在动画终点位置上。
采用了CPU的定时器的计数值,除了可以用于精确控制动画帧整体所处的位置外,还可以用于精确控制动画帧间元素的位置和/或形状,例如第1帧中A元素的位置和/或形状到第n帧中A元素的位置和/或形状,同一元素不同帧位置和/或形状的变化就形成了帧间元素的运动轨迹。对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画显示帧间元素的运动轨迹,具体包括如下步骤:
步骤A,获取帧间元素随时间变化的位置和/或形状控制逻辑。这种控制逻辑可以是常规的控制逻辑,例如帧间元素某个点的运动轨迹,从第2秒开始到第5秒直线运动X个像素。
步骤B,获取所述控制逻辑中帧间元素总时长与CPU频率的乘积。由上面的例子可知,总时长为3秒,CPU的频率视计算机性能各异,例如1GHz,则乘积为3G。
步骤C,将所述乘积作为帧间元素的位置和/或形状的状态数。即对于某个点的状态有3G个,由于是匀速运动,可以得到每个状态所对应的像素位置。
步骤D,获取时间差,所述时间差为所述帧间元素起始帧到当前帧的时间差,所述时间差由起始帧的CPU周期数与当前帧的CPU周期数的周期数之差表示。例如第2秒开始的起始帧到第4秒的当前帧的时间差为2秒,这个时间差可以用起始帧的CPU周期数(例如X)与当前帧的CPU周期数(例如Y)的周期数之差(Y-X)表示,如果CPU的频率为1GHz,则Y-X为2G。
步骤E,根据所述周期数之差及所述状态数确定所述帧间元素的位置和/或形状。容易理解,对于上述例子来说,2G对应于上述某个点的3G个状态中的第2G个。
步骤F,根据所述位置和/或形状显示所述帧间元素。由于获得了帧间元素的位置和/或形状,就可以显示出来实现动画效果。
通过上述帧间元素控制方法可知,通过利用CPU的高精度时间信息,可以精确控制动画帧间元素的位置和/或形状。当然,如果硬件无法实现如此高精度的动画,例如屏幕分辨率无法达到如此高的精度,可以进行近似的处理。
此外,如图10所示,还提供了一种动画控制系统,包括时间获取模块、时间计算模块、判断模块及控制模块。
时间获取模块用于获取动画开始时间及当前时间。动画内容可以是广告、短剧、窗口或桌面等界面切换时的动画。本实施例中的动画可以是桌面切换时的动画效果,例如应用平台的桌面与操作系统桌面切换时的动画效果。时间获取模块获取动画开始时间可以采用如下方式:累加计算CPU上电后到动画开始时的周期数。该周期数可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API(ApplicationProgrammingInterface,应用程序接口)中的QueryPerformanceCounter获得。将周期数与CPU频率的比值作为动画开始时间。CPU频率可以通过系统相应的接口获得。例如在windows操作系统中,可以采用API中的QueryPerformanceFrequency获得。类似地,可以获得当前时间。使用CPU上电后到动画开始时的周期数精确计时,保证动画每一帧的精确计算。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。
时间计算模块与所述时间获取模块连接,用于计算动画已播放时间。时间计算模块计算动画已播放时间的方式可以采用上述动画控制方法中计算动画已播放时间的步骤,在此不再赘述。
判断模块与所述时间计算模块相连,用于判断已播放时间是否小于动画总时长和/或下一帧动画位置是否超出动画终点位置。
控制模块与所述判断模块相连,若动画已播放时间大于等于动画总时长和/或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。
上述动画控制系统在动画总时长到来时或到达动画终点位置时绘制动画终点帧,避免了现有技术中绘制每一帧动画中由于设备配置低的原因,绘制每帧的时间会很长,且时间不可控,导致动画体验差的情况。上述动画控制系统可以有效的完成整个动画,使界面最后停在动画终点位置上。
在优选的实施例中,如图11所示,上述动画控制系统还包括与所述判断模块连接的存储模块,所述存储模块用于存储动画位置绘制逻辑,所述判断模块包括位置计算单元,所述位置计算单元用于根据所述绘制逻辑计算下一帧动画所处的像素位置。例如,在匀速运动的动画控制逻辑中,下一帧动画所处的像素位置离动画开始所处的像素位置的距离S与动画已播放时间t及动画终点位置到动画开始位置的像素数距离W成正比,而与动画总时长T成反比。其中,t为变化的量,可以采用上述方式获得。T及W在动画设计好后即已经确定。可以理解,动画位置绘制逻辑还可以是其他方式,这取决于需要什么样的动画效果,如果需要指数加速运动效果,则可以采用以下动画位置绘制逻辑:下一帧动画所处的像素位置离动画开始所处的像素位置的距离S为将动画已播放时间t与动画总时长T的比值作为动画终点位置到动画开始位置的像素数距离W的指数。通常,在实际应用中,例如在桌面切换的动画中,W为我们计算机屏幕的宽度像素数,即用来对计算机屏幕界面切换,实现计算机桌面滑动的动画效果。
在优选的实施例中,所述时间获取模块获取动画开始时间为获得CPU上电后到动画开始时的周期数;所述时间获取模块获取当前时间为获得当前CPU的周期数;所述判断模块判断已播放时间是否小于动画总时长为判断当前CPU的周期数是否小于结束周期数,所述结束周期数为动画开始时的周期数加动画时长与CPU频率的乘积。由于采用了CPU的定时器的计数值,对于现代高频率的CPU来说,每个计数周期是以纳秒计的,可以获得高精度的时间,从而便于精确控制动画。并且通过上述运算方式,可以避免使用除法,从而可以减少运算量,进一步使得动画运行过程中更加流畅。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种动画控制方法,其特征在于,包括以下步骤:
获取动画开始时间及动画当前时间,所述获取动画开始时间的步骤为获得CPU上电后到动画开始时的周期数,所述获取当前时间的步骤为获得当前CPU的周期数;
计算动画已播放时间;
若已播放时间小于动画总时长,则计算下一帧动画位置,所述判断已播放时间是否小于动画总时长的步骤为判断当前CPU的周期数是否小于结束周期数,所述结束周期数为动画开始时的周期数加动画时长与CPU频率的乘积;
判断下一帧动画位置是否超出动画终点位置;
若否,则执行下一帧动画;若是,绘制动画终点帧并退出;或当已播放时间不小于动画总时长时,直接绘制动画终点帧并退出。
2.根据权利要求1所述的动画控制方法,其特征在于,判断下一帧动画位置是否超出动画终点位置的步骤包括计算下一帧动画位置的步骤,所述计算下一帧动画位置的步骤包括:
获取动画位置绘制逻辑;
根据所述绘制逻辑计算下一帧动画所处的像素位置。
3.根据权利要求2所述的动画控制方法,其特征在于,所述绘制逻辑为下一帧动画所处的像素位置离动画开始所处的像素位置的距离与动画已播放时间及动画终点位置到动画开始位置的像素数距离成正比,而与动画总时长成反比。
4.根据权利要求2所述的动画控制方法,其特征在于,所述绘制逻辑为下一帧动画所处的像素位置离动画开始所处的像素位置的距离为将动画已播放时间与动画总时长的比值作为动画终点位置到动画开始位置的像素数距离的指数。
5.根据权利要求1所述的动画控制方法,其特征在于,在执行下一帧动画之前,还包括:
将需要移动的原始界面截图;
隐藏原始界面,用截图替换原始界面。
6.根据权利要求5所述的动画控制方法,其特征在于,所述绘制动画终点帧并退出的步骤包括:
显示原始界面;
删除截图。
7.根据权利要求1所述的动画控制方法,其特征在于,所述获取动画开始时间的步骤包括:
累加计算CPU上电后到动画开始时的周期数;
将周期数与CPU频率的比值作为动画开始时间。
8.根据权利要求7所述的动画控制方法,其特征在于,所述获取动画当前时间,并计算动画已播放时间的步骤包括:
累加计算CPU上电后到当前动画的周期数;
将当前动画的周期数与CPU频率的比值作为动画当前时间;
将动画当前时间与动画开始时间的差值作为动画已播放时间。
9.根据权利要求1所述的动画控制方法,其特征在于,绘制动画终点帧并退出之前只执行动画的命令而不作其他任何操作。
10.根据权利要求1所述的动画控制方法,其特征在于,还包括显示帧间元素的运动轨迹的步骤,所述计算帧间元素的运动轨迹的步骤包括:
获取帧间元素随时间变化的位置和/或形状控制逻辑;
获取所述控制逻辑中帧间元素总时长与CPU频率的乘积;
将所述乘积作为帧间元素的位置和/或形状的状态数;
获取时间差,所述时间差为所述帧间元素起始帧到当前帧的时间差,所述时间差由起始帧的CPU周期数与当前帧的CPU周期数的周期数之差表示;
根据所述周期数之差及所述状态数确定所述帧间元素的位置和/或形状;
根据所述位置和/或形状显示所述帧间元素。
11.一种动画控制系统,其特征在于,包括:
时间获取模块,用于获取动画开始时间及当前时间,所述时间获取模块获取动画开始时间为获得CPU上电后到动画开始时的周期数;所述时间获取模块获取当前时间为获得当前CPU的周期数;
时间计算模块,与所述时间获取模块连接,计算动画已播放时间;
判断模块,与所述时间计算模块相连,用于判断已播放时间是否小于动画总时长,并在已播放时间小于动画总时长时,计算下一帧动画位置,判断下一帧动画位置是否超出动画终点位置,所述判断模块判断已播放时间是否小于动画总时长为判断当前CPU的周期数是否小于结束周期数,所述结束周期数为动画开始时的周期数加动画时长与CPU频率的乘积;
控制模块,与所述判断模块相连,若动画已播放时间大于等于动画总时长或下一帧动画位置超出动画终点位置,则绘制动画终点帧并退出,否则执行下一帧动画。
12.根据权利要求11所述的动画控制系统,其特征在于,还包括与所述判断模块连接的存储模块,所述存储模块用于存储动画位置绘制逻辑,所述判断模块包括位置计算单元,所述位置计算单元用于根据所述绘制逻辑计算下一帧动画所处的像素位置。
13.根据权利要求12所述的动画控制系统,其特征在于,所述绘制逻辑为下一帧动画所处的像素位置离动画开始所处的像素位置的距离与动画已播放时间及动画终点位置到动画开始位置的像素数距离成正比,而与动画总时长成反比。
14.根据权利要求12所述的动画控制系统,其特征在于,所述绘制逻辑为下一帧动画所处的像素位置离动画开始所处的像素位置的距离为将动画已播放时间与动画总时长的比值作为动画终点位置到动画开始位置的像素数距离的指数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110442422.0A CN103177465B (zh) | 2011-12-26 | 2011-12-26 | 动画控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110442422.0A CN103177465B (zh) | 2011-12-26 | 2011-12-26 | 动画控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103177465A CN103177465A (zh) | 2013-06-26 |
CN103177465B true CN103177465B (zh) | 2016-04-13 |
Family
ID=48637293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110442422.0A Active CN103177465B (zh) | 2011-12-26 | 2011-12-26 | 动画控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177465B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106485771B (zh) * | 2015-08-27 | 2019-07-19 | 博雅网络游戏开发(深圳)有限公司 | 动画性能检测方法和系统 |
CN107015788B (zh) | 2016-10-19 | 2020-10-30 | 创新先进技术有限公司 | 在移动设备上动画展现图像的方法和装置 |
CN107193515B (zh) * | 2017-04-10 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 动画显示流畅度的监控方法、装置及其设备 |
CN110007831B (zh) * | 2019-03-29 | 2021-01-29 | 珠海豹好玩科技有限公司 | 一种翻页控制方法、装置及终端设备 |
CN113902609B (zh) * | 2021-03-17 | 2022-06-10 | 广州市保伦电子有限公司 | 一种基于OpenGL嵌入式设备流畅渲染控件动画方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1369862A (zh) * | 2001-02-15 | 2002-09-18 | 英业达股份有限公司 | 动画制作的方法和系统 |
US7003154B1 (en) * | 2000-11-17 | 2006-02-21 | Mitsubishi Electric Research Laboratories, Inc. | Adaptively processing a video based on content characteristics of frames in a video |
CN101193250A (zh) * | 2006-11-27 | 2008-06-04 | 三星电子株式会社 | 产生运动图像的帧信息的系统、方法和介质 |
CN101207822A (zh) * | 2006-12-22 | 2008-06-25 | 上海晨兴电子科技有限公司 | 流媒体终端的音频视频同步的方法 |
CN101266693A (zh) * | 2008-03-31 | 2008-09-17 | 康佳集团股份有限公司 | 一种动态控制动画运行过程的方法 |
CN101923425A (zh) * | 2009-06-10 | 2010-12-22 | 中国移动通信集团公司 | 基于滑动终端屏幕实现窗口切换的方法及其装置 |
CN102082774A (zh) * | 2009-12-01 | 2011-06-01 | 新奥特(北京)视频技术有限公司 | 一种流媒体数据播放方法及播放系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100246792B1 (ko) * | 1997-06-24 | 2000-03-15 | 윤종용 | 프로그램 진행시간 안내방법과 장치 |
US20060114327A1 (en) * | 2004-11-26 | 2006-06-01 | Fuji Photo Film, Co., Ltd. | Photo movie creating apparatus and program |
CN102075792B (zh) * | 2010-12-23 | 2013-01-02 | 华为技术有限公司 | 视频文件播放方法及系统、用户端设备、服务器设备 |
-
2011
- 2011-12-26 CN CN201110442422.0A patent/CN103177465B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003154B1 (en) * | 2000-11-17 | 2006-02-21 | Mitsubishi Electric Research Laboratories, Inc. | Adaptively processing a video based on content characteristics of frames in a video |
CN1369862A (zh) * | 2001-02-15 | 2002-09-18 | 英业达股份有限公司 | 动画制作的方法和系统 |
CN101193250A (zh) * | 2006-11-27 | 2008-06-04 | 三星电子株式会社 | 产生运动图像的帧信息的系统、方法和介质 |
CN101207822A (zh) * | 2006-12-22 | 2008-06-25 | 上海晨兴电子科技有限公司 | 流媒体终端的音频视频同步的方法 |
CN101266693A (zh) * | 2008-03-31 | 2008-09-17 | 康佳集团股份有限公司 | 一种动态控制动画运行过程的方法 |
CN101923425A (zh) * | 2009-06-10 | 2010-12-22 | 中国移动通信集团公司 | 基于滑动终端屏幕实现窗口切换的方法及其装置 |
CN102082774A (zh) * | 2009-12-01 | 2011-06-01 | 新奥特(北京)视频技术有限公司 | 一种流媒体数据播放方法及播放系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103177465A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177465B (zh) | 动画控制方法及系统 | |
KR101903922B1 (ko) | 애플리케이션 선택 가능 사용자 인터페이스에서 새로운 콘텐츠의 점진적 표시 기법 | |
CN106156066B (zh) | 一种页面切换方法、装置及客户端 | |
CN103744671A (zh) | 一种信息处理的方法及电子设备 | |
CN107071556A (zh) | 一种界面渲染方法和装置 | |
CN104572110A (zh) | 一种安卓系统上Toast控件的优化方法 | |
WO2016036728A1 (en) | Snap points including ranges | |
CN102033943A (zh) | 基于移动通讯设备终端的多窗口浏览方法及其系统 | |
CN110221764A (zh) | 用户界面上的触摸操作方法与移动终端 | |
CN102520943A (zh) | 动态壁纸和桌面图标之间的交互方法及装置 | |
CN105100851B (zh) | 智能电视机遥控器的操作指示方法及装置 | |
CN109361947A (zh) | 网络资源批量加载方法、智能电视、存储介质及装置 | |
CN106303652A (zh) | 一种界面元素的绘制方法及装置 | |
US20140028701A1 (en) | Modifying transition sequences in a user interface depending on frequency of use | |
CN107396413A (zh) | 通信控制方法、终端、网络侧设备及网络切换系统 | |
WO2015070671A1 (zh) | 生成菜单的方法和装置 | |
CN107526499A (zh) | 消息处理方法及装置 | |
CN106055404B (zh) | 一种清理后台应用程序的方法和装置 | |
CN105867755A (zh) | 一种提高画面流畅性的方法和终端设备 | |
CN109117237A (zh) | 一种弹幕显示方法、装置及电子设备 | |
CN103246502B (zh) | 一种弹出式窗口的实现方法和系统 | |
CN112148168A (zh) | 图标的移动方法、装置和电子设备 | |
CN105554517A (zh) | 一种视频流发送方法及装置 | |
CN110928600A (zh) | 终端后台应用的清理方法和装置、移动终端、电子设备 | |
CN102984373A (zh) | 一种移动终端及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |