CN110020370B - 在客户端应用中实现动画的方法、装置及动画脚本的框架 - Google Patents
在客户端应用中实现动画的方法、装置及动画脚本的框架 Download PDFInfo
- Publication number
- CN110020370B CN110020370B CN201711423001.7A CN201711423001A CN110020370B CN 110020370 B CN110020370 B CN 110020370B CN 201711423001 A CN201711423001 A CN 201711423001A CN 110020370 B CN110020370 B CN 110020370B
- Authority
- CN
- China
- Prior art keywords
- animation
- script
- view
- identifier
- client application
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2213/00—Indexing scheme for animation
- G06T2213/04—Animation description language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2213/00—Indexing scheme for animation
- G06T2213/08—Animation software package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种在客户端应用中实现动画的方法,包括:接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;根据所述逻辑脚本提供的条件,确定所述待实现动画描述在所述待驱动视图组件的加载。以解决现有在客户端应用中实现动画的方法存在不能临时调整与变更、覆盖率低以及无法满足运营需求的问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种在客户端应用中实现动画的方法及装置。本发明同时涉及一种在客户端应用中实现动画脚本的框架,以及一种电子设备。
背景技术
随着互联网的飞速发展,越来越多的用户参与到网络购物中。为了吸引用户的关注,各大电商都会在客户端图形界面添加动画效果。
现有技术下,客户端应用程序实现动画效果都是通过客户端硬编码的方式来实现,从动画需求提出到落地的整个流程包括:提出需求,设计动画效果,开发动画效果,编译打包,提交由测试工程师测试整个应用程序(由于对应用程序编码做了更改,要发布必须将整个应用程序回归测试一遍),提交至应用程序市场审核,用户更新客户端应用程序。
现有技术提供的客户端应用程序实现动画效果的方案具有一些缺陷:
1、实现动画需要预先硬编码好,发布之后不能临时调整与变更。
2、调整或者新增动画效果必须经过开发,编译,打包,测试,发布等流程,整个流程繁杂,耗费的周期较长,而且新的客户端版本需要一段时间用户更新才能达到一定比例,动画效果不能全面覆盖,用户不能即时体验到新功能。
3、通常运营想通过动画效果来吸引用户眼球来增加运营效果,并希望随着运营需求的变更能够快速试错,以需求最好的运营效果。但是由于客户端应用程序实现动画的成本较高、周期较长,无法满足运营需求。
综上所述,现有的在客户端应用中实现动画的方法存在不能临时调整与变更、覆盖率低以及无法满足运营需求的问题。
发明内容
本申请提供一种在客户端应用中实现动画的方法,以解决现有在客户端应用中实现动画的方法存在不能临时调整与变更、覆盖率低以及无法满足运营需求的问题。本申请另外提供一种在客户端应用中实现动画的装置。
本申请提供的在客户端应用中实现动画的方法,包括:
接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,确定所述待实现动画描述在所述待驱动视图组件的加载。
优选的,在接收服务器下发的采用脚本语言编写的动画代码的步骤之前,包括:接收从配置中心下发的配置数据;所述配置数据至少包括:配置动画处理是否生效、所述客户端应用可以接收的脚本名称。
优选的,所述逻辑脚本的逻辑功能,包括:动画触发、执行、暂停、回收。
优选的,所述动画描述脚本采用JSON语言进行动画描述。
优选的,所述预先获取的视图标识和视图组件的对应关系,从应用程序中同步获取。
本申请提供的在客户端应用中实现动画脚本的框架,包括:引擎模块、配置模块、适配器模块、服务模块;
所述引擎模块,用于提供框架的初始化,包括实现对配置中心接口的注册以及实现模板中心接口的注册;
所述配置模块,用于接收框架所依赖的配置中心的配置数据,所述配置数据为框架提供业务模块接入所需要的信息;
所述适配器模块,用于对不同的应用模块提供通用的适配接口,对应用模块提供与动画脚本执行相关的接口,以及提供在应用模块实现动画驱动的接口;
所述服务模块,用于提供脚本语言的运行环境,以及接收脚本程序的加载和运行。
优选的,所述框架所依赖的配置中心的配置数据,包括:动画处理是否生效、所述客户端应用可以接收的脚本名称。
优选的,所述不同的应用模块,包括:手机淘宝、手机天猫、聚划算。
优选的,所述框架还包括:动画服务模块,用于提供动画解析功能并存储解析后的动画描述数据。
优选的,所述框架还包括:模板接收模块,用于接收模板中心提供的动画模板;所述服务模块运行所述脚本程序时,包括利用模板中心提供的动画模板。
优选的,所述服务模块接收脚本程序的加载后,执行下述处理:
对动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,通过所述适配器模块提供的接口,将所述待实现动画描述加载到客户端应用中的所述待驱动视图组件。
本申请提供一种在客户端应用中实现动画的装置,包括:
代码接收单元,用于接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
脚本解析单元,用于对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
视图及动画确定单元,用于根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
动画加载单元,用于根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
本申请还提供一种电子设备,包括:
显示器;
处理器;以及
存储器,用于存储在客户端应用中实现动画的方法的程序,该设备通电并通过所述处理器运行该一种在客户端应用中实现动画的方法的程序后,执行下述步骤:
接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
本申请提供的在客户端应用中实现动画的方法,与现有技术相比,具有以下优点:
1、客户端应用程序接收服务端下发的动画脚本,客户端不需要硬编码,因此客户端可以随时根据服务端下发的动画代码进行动画代码的调整。
2、由于动画脚本从服务端随时下发至客户端,在显示应用程序页面的同时会通过调用代码触发动画,用户能够即时体验到新功能,覆盖率高。
3、实现动画效果只需在服务端编写动画代码并下发至客户端即可实现,跳过编译、打包、测试、发布流程,实现动画的成本较低、周期较短,能够满足运营需求。
附图说明
图1是本申请第一实施例提供的一种在客户端应用中实现动画脚本的框架的示意图。
图2是本申请第二实施例提供的一种在客户端应用中实现动画的方法的流程图。
图3是本申请第二实施例提供的动画加载至视图组件的示意图。
图4是本申请第三实施例提供的一种在客户端应用中实现动画的装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
在本申请实施例中,分别提供了一种在客户端应用中实现动画脚本的平台、一种在客户端应用中实现动画的方法、以及一种在客户端应用中实现动画的装置、以及一种电子设备。在下面的实施例中逐一进行详细说明。为了便于理解,先对本申请实施例提供的技术方案作简要说明。
现有技术下,移动APP通常使用其平台专有的语言开发,例如iOS系统使用OC语言来开发iOS APP,Android使用JAVA语言开发Android APP,但这些语言开发的APP不具备动态能力,也就是说APP一旦开发好,下载到用户的手机中,APP中的代码逻辑将不能再被修改,除非APP代码更新,并且用户要重新下载。
本申请提供的在客户端应用中实现动画的方法,通过在客户端应用程序中接入在客户端应用中实现动画脚本的框架,客户端应用程序就可以接收服务端下发的动画脚本,由于javascript是解释型的脚本语言,无需事先编译好,可以随时下发到用户的手机中,也就是说APP中的代码逻辑可以随时变更,不再需要让用户重新下载APP就可以完成对APP中的功能逻辑的变更。因此客户端可以随时根据服务端下发的动画代码进行动画代码的调整;在客户端实现动画效果只需在服务端编写动画代码并下发至客户端即可实现,跳过编译、打包、测试、发布流程,实现动画的成本较低、周期较短,能够满足运营需求。
本申请第一实施例提供了一种在客户端应用中实现动画脚本的框架。请参考图1,其示出了根据本申请的实施例提供的一种在客户端应用中实现动画脚本的框架的示意图。以下结合图1进行详细说明。本实施例中的在客户端应用中实现动画脚本的框架可以称为Flare框架,Flare框架定位是一个可以接入任意客户端平台(淘宝、天猫、聚划算等)的通用基础框架,针对配置(模块配置信息、JS脚本文件、动画描述文件)的获取,Flare开放出来了通用的适配接口,针对各个客户端平台实现接口定义的方法,并在程序启动或合适的时机将实现类注入,后续各接入模块获取配置时会直接针对接口进行调用。
所述在客户端应用中实现动画脚本的框架,包括:引擎模块101、配置模块102、适配器模块103、服务模块104。
所述引擎模块101,用于提供框架的初始化,包括实现对配置中心接口的注册以及实现模板中心接口的注册。
在具体实施时,引擎(engine)模块可以设计为包括引擎类,提供获取配置、注册配置中心接口实现和注册模板中心接口实现的相关方法,用于对Flare框架的全局初始化。
所述配置,指控制程序运行状态和逻辑的一些参数。
所述获取配置,指客户端应用从配置中心获取需要的配置数据。当业务模块需要配置时,会获取对应的配置。
所述配置中心指用于管理配置的后端平台,可以按照客户端平台、版本进行配置的动态下发。
所述注册配置中心接口,具体是创建框架与配置中心接口的实现类,实现接口中定义的方法;通过这些方法实现与配置中心的接口,从而能够从所述配置中心读取配置。
所述模板中心,指提供动画模板的后端平台。
所述注册模板中心接口,指创建框架与模板中心接口的实现类,实现接口中定义的方法;通过这些方法实现与模板中心的接口,从而能够从模板中心获取动画模板。
所述配置模块102,用于接收框架所依赖的配置中心的配置数据,所述配置数据为框架提供业务模块接入所需要的信息。
所述框架所依赖的配置中心的配置数据,包括:动画处理是否生效、所述客户端应用可以接收的脚本名称等。
在具体实施时,配置模块可以设计为包括配置类和配置接口。
1)配置类
开放针对配置中心的统一的获取配置的接口,外部通过引擎(Flare Engine)注册实现后,通过该实现读取来自框架依赖配置中心的数据,并向框架内部提供解析好的配置数据。
2)配置接口
Flare是一个通用化的框架,并不绑定固定的配置中心,开放出统一的适配接口,通过实现该接口并注入的方式,解决不同接入平台配置中心的差异化问题。即根据不同客户端应用或者客户端环境,设置相应的配置接口,从而使处于不同环境下的Flare平台都能够从配置中心获取配置。
所述适配器模块103,用于对不同的应用模块提供通用的适配接口,对应用模块提供与动画脚本执行相关的接口,以及提供在应用模块实现动画驱动的接口。
所述不同的应用模块,包括:手机淘宝、手机天猫、聚划算等。
适配器是Flare框架主要的接入方式,业务模块通过适配器,可以完成JS服务和动画服务的创建,同时通过开放出来的接口完成动画的触发、JS环境和Native环境的消息通信等。
所述适配器模块包括适配器类、适配器管理类、适配器接口层。
1)适配器类
Flare框架可以在代码层面上与业务模块(交易链路、搜索、导购等)或者是与框架(Tangram布局框架等)对接,对接的方式就是适配器方式,适配器类中提供了组件查找、映射查找、动画触发等方法,提供给接入方,接入方是指各个业务模块。
2)适配器管理类
业务模块可以自己管理自己的适配器,也可以将适配器托管给适配器管理类,适配器管理类可以创建或者销毁适配器实例,控制适配器的生命周期。
3)适配器接口层
用于提供与业务模块的各种接口,通过这些接口,可以在业务模块中实现动画。
所述服务模块104,用于提供脚本语言的运行环境,以及接收脚本程序的加载和运行。
所述服务模块接收脚本程序的加载后,执行下述处理:
对动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,通过所述适配器模块提供的接口,将所述待实现动画描述加载到客户端应用中的所述待驱动视图组件。
所述服务模块包括JS服务模块。
所述JS服务模块可以设计为包括:JS对象、JS服务类、JS服务接口层。
所述JS对象,用于提供注册JS环境对象、日志、动画触发功能;
所述JS服务类,用于提供管理JS对象、JS环境上下文、接收来自JS环境中的消息的功能;
所述JS服务接口层,用于将JS开放给Native端的接口以及JS对象回调的方法进行归类。
所述框架还包括动画服务模块,用于提供动画解析功能并存储解析后的动画描述数据。
所述动画服务模块,可以设计为包括:动画解析类、动画库、动画服务类等;
所述动画解析类,用于将动画描述脚本解析成动画描述数据;
所述动画库,用于缓存解析的动画描述数据;
所述动画服务类,用于提供动画查找的功能。
所述框架还包括:模板接收模块,用于接收模板中心提供的动画模板;所述服务模块运行所述脚本程序时,包括利用模板中心提供的动画模板。
本申请第二实施例提供了一种在客户端应用中实现动画的方法。请参考图2和图3,图2其示出了根据本申请的实施例提供的一种在客户端应用中实现动画的方法的流程图。图3是本申请第二实施例提供的动画加载至视图组件的示意图。以下结合图2和图3进行详细说明。该实施例是从客户端的视角提供的在客户端应用中实现动画的方法;即执行该实施例提供的方法的是客户端。
步骤S201,接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本。
本步骤中客户端接收服务端下发的动画代码,为在客户端实现动画显示提供前提条件。
所述动画,是一系列描述视图变化的属性集合,比如透明度、位移、比例等。
所述动画描述,指描述动画的行为,动画描述的对象可以是单一的动画,也可以是组合起来的动画。
所述动画逻辑,通常指与业务相关的控制逻辑,包括控制动画的触发时机、动画生命周期的控制逻辑。其中,动画生命周期包括动画的创建、暂停、回收、及动画开始执行以及执行结束的回调等。
所述脚本,就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。脚本通常可以由应用程序临时调用并执行。各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。
所述动画描述脚本,指包含动画描述内容的脚本,采用脚本语言将动画描述的内容编写成动画描述脚本。所述动画描述脚本是从服务端下发给客户端的,本实施例中,动画描述脚本随时从服务端下发到客户端(例如天猫APP),所述动画描述脚本可以采用JSON描述动画,再通过JS脚本将JSON语言描述的动画串联起来。
在具体实施时,动画描述脚本可以通过Key-Value的方式进行描述,即抽象成JSON的格式进行描述,例如:在动画描述脚本中将某一动画描述成:
其中,module—组件实例名称,repeatCount—重复次数;
autoreverses—逆向运行动画;name—动画标识;duration—动画完成一个周期所需要的时间。
所述逻辑脚本,指将动画逻辑抽象到JS脚本中,通过JS的运行环境来控制动画的触发时机、展现形式等,接入方初始化时,会同步初始化对应的JS脚本,通过一些方法抽象,以及JS与Native的通信可以完成一部分主要的业务逻辑控制,完成脚本化。
JS(Javascript)是一种具有逻辑运算与可执行能力的脚本语言,相比客户端开发中所使用的OC(iOS),Java(Android),C#(Windows Phone)等语言来说具有动态性,跨平台,灵活性的特点,使用最多的场景是在Web浏览器上,目前几乎所有的网页上都使用了Javascript。
所述动画描述脚本和逻辑脚本位于服务端,服务端可以随意修改动画描述脚本和逻辑脚本,通过与客户端配置中心,模板中心等平台提供的能力结合,能够完成动画描述脚本和逻辑脚本的动态下发,可以使客户端在不发版本的情况下完成动画行为以及逻辑的变化,让产品需求快速得到响应。
所述接收服务器下发的采用脚本语言编写的动画代码,指图形界面客户端应用程序接收服务端下发的动画描述脚本和逻辑脚本。由于动画描述脚本和逻辑脚本存在于服务端,因此需要将动画描述脚本和逻辑脚本下发到客户端应用程序,客户端才能显示动画。
例如,天猫APP首页中的天猫超市入口的icon需要每隔三秒做一个放大的动画效果来突出天猫超市,但是这个动画效果的代码逻辑在APP中没有实现,则可以先在天猫APP的服务端编写关于天猫超市入口的icon动画描述脚本和逻辑脚本,并将上述动画描述脚本和逻辑脚本从服务端下发到天猫APP,客户端接收下发的动画描述脚本和动画逻辑脚本并将其存储在天猫APP。
客户端应用程序在接收服务器下发的采用脚本语言编写的动画代码的步骤之前,需要接收从配置中心下发的配置数据。所述配置中心指用于管理配置的后端平台,可以按照客户端平台、版本进行配置的动态下发。
所述从配置中心下发的配置数据,包括:配置动画处理是否生效、客户端应用可以接收的脚本名称等。客户端应用程序根据从配置中心接收的配置数据决定动画处理是否生效,例如,可以设置与动画处理生效相关的配置参数为1时,动画处理生效,设置动画处理生效相关的配置参数为0时,动画处理不生效,只有当动画处理生效时,客户端应用程序才接收服务端下发的动画代码。客户端应用程序根据从配置中心下发的脚本名称,从服务端接收相应的动画描述脚本和逻辑脚本。
步骤S202,对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系。
所述视图标识(Component Key)是用于标示视图(Component Instance)唯一的一个Key,业务模块需要提供这个映射关系,动画引擎(本实施例中指Flare引擎)会通过视图标识找到对应的视图,并将动画绑定到对应的视图上。
所述动画标识(Animation ID)是标识一个动画唯一的一个Key,动画引擎会解析全部的动画描述脚本或者片段,当动画需要触发时,可以根据动画标识找到对应的动画描述,生成动画。
对所述动画代码中的逻辑脚本进行解析,可以获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系。
上述映射关系可以定义在Native端(使用客户端系统编程语言编写代码的一端)或者JS环境中。在获取映射关系时,映射关系来源是多种的,适配器优先从JS环境中获取映射关系。
步骤S203,根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述。
所述组件,指页面上的元素,例如注册表单、按钮、Tab选项卡等等。
所述视图组件,指存放有页面上的视图的组件。每个视图组件对应一个视图实例。例如,视图组件可以是天猫超市入口的icon或者由天猫首页上动态滚动的在相同位置显示的不同视图。
所述待驱动视图组件,指待实现动画描述待加载的目标视图组件。
所述预先获取的视图标识和视图组件的对应关系,可以从应用程序中同步获取。
所述动画描述,指从动画描述脚本解析出的动画描述数据,可以将动画描述数据以Map类型的集合的形式存放。Map集合类用于存储元素对(称作“key”和“value”),其中每个key映射到一个value。本实施例中,可以将动画描述数据存放到Flare框架的动画库中。例如,动画库中存在动画描述1、动画描述2、动画描述3,其分别对应动画标识ID1、动画标识ID2、动画标识ID3,动画描述1、2、3为“value”,动画标识ID1、ID2、ID3为“key”。可以根据“key”找到对应的“value”。
所述对应该动画标识的待实现动画描述,指与该动画标识对应的动画描述。例如,动画标识ID1对应的待实现动画描述为动画描述1。
所述根据所述视图标识对应的动画标识,读取所述动画脚本中的对应该动画标识的待实现动画描述,指在客户端应用中实现动画脚本的平台中的动画引擎根据所述视图标识对应的动画标识,读取所述动画脚本中的对应该动画标识的待实现动画描述。仍沿用步骤S201中的例子,天猫APP中的Flare引擎会对动画描述脚本进行解析成动画描述数据,并将其存储在Flare框架中的动画库中,假设动画库中存储的天猫超市入口的icon的动画标识为ID1,则其对于的待实现动画描述为Animation Description 1。
步骤S204,根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
通过步骤S203获取了待实现动画描述和待驱动视图组件,当逻辑脚本执行时,触发动画,将所述待实现动画描述加载到所述待驱动视图组件实现动画。
与上述提供的一种在客户端应用中实现动画的方法相对应的,本申请实施例还提供了一种在客户端应用中实现动画的装置。由于所述装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述在客户端应用中实现动画的装置实施例如下:
请参考图4,其示出了根据本申请的第三实施例提供的一种在客户端应用中实现动画的装置的示意图。
所述在客户端应用中实现动画的装置,包括:代码接收单元401、脚本解析单元402、视图及动画确定单元403、动画加载单元404。
代码接收单元401,用于接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
脚本解析单元402,用于对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
视图及动画确定单元403,用于根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画脚本中的对应该动画标识的待实现动画描述;
动画加载单元404,用于根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
可选的,所述装置包括:
配置数据接收单元,用于在代码接收单元之前,接收从配置中心下发的配置数据;所述配置数据至少包括:配置动画处理是否生效、所述客户端应用可以接收的脚本名称。
可选的,所述逻辑脚本的逻辑功能,包括:动画触发、执行、暂停、回收。
可选的,所述动画描述脚本采用JSON语言进行动画描述。
可选的,所述预先获取的视图标识和视图组件的对应关系,从应用程序中同步获取。
本申请第四实施例提供一种电子设备,所述电子设备包括:
显示器;
处理器;以及
存储器,用于存储在客户端应用中实现动画的方法的程序,该设备通电并通过所述处理器运行该一种在客户端应用中实现动画的方法的程序后,执行下述步骤:
接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (13)
1.一种在客户端应用中实现动画的方法,其特征在于,包括:
接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,确定所述待实现动画描述在所述待驱动视图组件的加载。
2.根据权利要求1所述的在客户端应用中实现动画的方法,其特征在于,在接收服务器下发的采用脚本语言编写的动画代码的步骤之前,包括:接收从配置中心下发的配置数据;所述配置数据至少包括:配置动画处理是否生效、所述客户端应用可以接收的脚本名称。
3.根据权利要求1所述的在客户端应用中实现动画的方法,其特征在于,所述逻辑脚本的逻辑功能,包括:动画触发、执行、暂停、回收。
4.根据权利要求1所述的方法,其特征在于,所述动画描述脚本采用JSON语言进行动画描述。
5.根据权利要求1所述的方法,其特征在于,所述预先获取的视图标识和视图组件的对应关系,从应用程序中同步获取。
6.一种在客户端应用中实现动画脚本的框架装置,其特征在于,包括:引擎模块、配置模块、适配器模块、服务模块;
所述引擎模块,用于提供框架的初始化,包括实现对配置中心接口的注册以及实现模板中心接口的注册;
所述配置模块,用于接收框架所依赖的配置中心的配置数据,所述配置数据为框架提供业务模块接入所需要的信息;
所述适配器模块,用于对不同的应用模块提供通用的适配接口,对应用模块提供与动画脚本执行相关的接口,以及提供在应用模块实现动画驱动的接口;
所述服务模块,用于提供脚本语言的运行环境,以及接收服务端下发的动画代码的脚本程序的加载和运行。
7.根据权利要求6所述的在客户端应用中实现动画脚本的框架装置,其特征在于,所述框架所依赖的配置中心的配置数据,包括:动画处理是否生效、所述客户端应用可以接收的脚本名称。
8.根据权利要求6所述的在客户端应用中实现动画脚本的框架装置,其特征在于,所述不同的应用模块,包括:手机淘宝、手机天猫、聚划算。
9.根据权利要求6所述的在客户端应用中实现动画脚本的框架装置,其特征在于,所述框架还包括:动画服务模块,用于提供动画解析功能并存储解析后的动画描述数据。
10.根据权利要求9所述的在客户端应用中实现动画脚本的框架装置,其特征在于,所述框架还包括:模板接收模块,用于接收模板中心提供的动画模板;所述服务模块运行所述脚本程序时,包括利用模板中心提供的动画模板。
11.根据权利要求6所述的在客户端应用中实现动画脚本的框架装置,其特征在于,所述服务模块接收脚本程序的加载后,执行下述处理:
对动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画代码中的动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,通过所述适配器模块提供的接口,将所述待实现动画描述加载到客户端应用中的所述待驱动视图组件。
12.一种在客户端应用中实现动画的装置,其特征在于,包括:
代码接收单元,用于接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
脚本解析单元,用于对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
视图及动画确定单元,用于根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
动画加载单元,用于根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
13.一种电子设备,其特征在于,包括:
显示器;
处理器;以及
存储器,用于存储在客户端应用中实现动画的方法的程序,该设备通电并通过所述处理器运行一种在客户端应用中实现动画的方法的程序后,执行下述步骤:
接收服务器下发的采用脚本语言编写的动画代码;所述动画代码中包含逻辑脚本和动画描述脚本;
对所述动画代码中的逻辑脚本进行解析,获取其中包括的视图标识和动画标识,以及视图标识和动画标识的对应关系;
根据预先获取的视图标识和视图组件的对应关系,确定所述视图标识在所述客户端应用中对应的待驱动视图组件;以及,根据所述视图标识对应的动画标识,读取所述动画描述脚本中的对应该动画标识的待实现动画描述;
根据所述逻辑脚本提供的条件,在条件具备时,将所述待实现动画描述加载到所述待驱动视图组件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711423001.7A CN110020370B (zh) | 2017-12-25 | 2017-12-25 | 在客户端应用中实现动画的方法、装置及动画脚本的框架 |
US16/228,598 US10789751B2 (en) | 2017-12-25 | 2018-12-20 | Method and apparatus for implementing animation in client application and animation script framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711423001.7A CN110020370B (zh) | 2017-12-25 | 2017-12-25 | 在客户端应用中实现动画的方法、装置及动画脚本的框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020370A CN110020370A (zh) | 2019-07-16 |
CN110020370B true CN110020370B (zh) | 2023-03-14 |
Family
ID=66950484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711423001.7A Active CN110020370B (zh) | 2017-12-25 | 2017-12-25 | 在客户端应用中实现动画的方法、装置及动画脚本的框架 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10789751B2 (zh) |
CN (1) | CN110020370B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806865B (zh) * | 2019-11-08 | 2023-06-20 | 百度在线网络技术(北京)有限公司 | 动画生成方法、装置、设备及计算机可读存储介质 |
US11698776B2 (en) * | 2020-07-24 | 2023-07-11 | Unity Technologies Sf | Method and system for processing computer code |
CN112562049B (zh) * | 2021-02-26 | 2021-05-18 | 湖北亿咖通科技有限公司 | 一种播放系统形象的方法 |
CN114299198A (zh) * | 2021-12-31 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 动画生成方法、装置、电子设备、介质及计算机程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101627607A (zh) * | 2007-02-26 | 2010-01-13 | 诺基亚公司 | 用于执行对富媒体内容和服务的动态更新的基于脚本的系统 |
CN103176809A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 应用升级方法及系统 |
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN105027110A (zh) * | 2013-02-04 | 2015-11-04 | 谷歌公司 | 创建动画内容项的系统和方法 |
CN105574049A (zh) * | 2014-10-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 移动应用的页面处理方法、装置和系统 |
CN106557556A (zh) * | 2016-11-08 | 2017-04-05 | 北京奇虎科技有限公司 | 一种网页页面的展示方法、装置、服务器和系统 |
CN106897318A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 移动终端设备上应用页面的展示方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5867175A (en) * | 1996-05-24 | 1999-02-02 | Microsoft Corporation | Method and apparatus for scriping animation |
JP2002109560A (ja) * | 2000-10-02 | 2002-04-12 | Sharp Corp | アニメーション再生装置、アニメーション再生システム、アニメーション再生方法、アニメーション再生方法を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US7173623B2 (en) * | 2003-05-09 | 2007-02-06 | Microsoft Corporation | System supporting animation of graphical display elements through animation object instances |
KR100826959B1 (ko) * | 2007-03-26 | 2008-05-02 | 정상국 | 동영상 제작 방법 및 시스템 |
WO2012011228A1 (ja) * | 2010-07-23 | 2012-01-26 | パナソニック株式会社 | アニメーション描画装置、アニメーション描画プログラム、及びアニメーション描画方法 |
US8902235B2 (en) * | 2011-04-07 | 2014-12-02 | Adobe Systems Incorporated | Methods and systems for representing complex animation using scripting capabilities of rendering applications |
US9478059B2 (en) * | 2014-07-28 | 2016-10-25 | PocketGems, Inc. | Animated audiovisual experiences driven by scripts |
US10334328B1 (en) * | 2017-01-20 | 2019-06-25 | Render Inc. | Automatic video generation using auto-adaptive video story models |
US10586399B2 (en) * | 2017-04-12 | 2020-03-10 | Disney Enterprises, Inc. | Virtual reality experience scriptwriting |
-
2017
- 2017-12-25 CN CN201711423001.7A patent/CN110020370B/zh active Active
-
2018
- 2018-12-20 US US16/228,598 patent/US10789751B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101627607A (zh) * | 2007-02-26 | 2010-01-13 | 诺基亚公司 | 用于执行对富媒体内容和服务的动态更新的基于脚本的系统 |
CN103176809A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 应用升级方法及系统 |
CN105027110A (zh) * | 2013-02-04 | 2015-11-04 | 谷歌公司 | 创建动画内容项的系统和方法 |
CN104111855A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于Lua的iOS客户端功能动态更新的方法 |
CN105574049A (zh) * | 2014-10-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 移动应用的页面处理方法、装置和系统 |
CN106897318A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 移动终端设备上应用页面的展示方法及装置 |
CN106557556A (zh) * | 2016-11-08 | 2017-04-05 | 北京奇虎科技有限公司 | 一种网页页面的展示方法、装置、服务器和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190197754A1 (en) | 2019-06-27 |
US10789751B2 (en) | 2020-09-29 |
CN110020370A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074087B2 (en) | System and method for identifying, indexing, and navigating to deep states of mobile applications | |
EP3342145B1 (en) | Deep linking to mobile application states through programmatic replay of user interface events | |
Wargo | PhoneGap essentials: Building cross-platform mobile apps | |
CN107451162B (zh) | 网络资源访问设备、混合设备及方法 | |
US9307342B2 (en) | Dynamic rendering for software applications | |
CN110134386B (zh) | 一种程序编辑方法和装置 | |
CN104781785B (zh) | 为应用从中间语言代码生成本机代码 | |
WO2017050094A1 (zh) | 加载应用程序的方法及装置 | |
CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
WO2019072201A1 (zh) | 网页内容提取方法以及终端设备 | |
Meier et al. | Professional Android | |
US9858094B2 (en) | Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention | |
US9292253B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US9400633B2 (en) | Methods and apparatus for voiced-enabling a web application | |
US10157612B2 (en) | Methods and apparatus for voice-enabling a web application | |
US20170242665A1 (en) | Generation of hybrid enterprise mobile applications in cloud environment | |
US9038019B2 (en) | Paige control for enterprise mobile applications | |
US20140039885A1 (en) | Methods and apparatus for voice-enabling a web application | |
US9292252B2 (en) | Methods and apparatus for voiced-enabling a web application | |
CN114895908B (zh) | 基于Web应用表达式的实现方法及系统、设备和存储介质 | |
CN112068879A (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN115202673A (zh) | 基于云服务器的应用构建方法、装置和计算机设备 | |
CN111290757A (zh) | 基于Weex的在线代码编译方法、装置及设备 | |
Vavru et al. | Android programming: Complete application programming guide | |
CN117827228B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010800 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |