一种优化的SVG演示放映方法技术

技术编号:2920174 阅读:310 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及计算机应用领域,尤其涉及一种SVG演示放映方法。一种SVG演示放映方法,该方法将系统分为应用层、逻辑层和数据层,数据层包括DOM原始数据定义区、DOM放映区、播放状态存储单元和其它数据存储单元;该演示放映方法还包括放映页的初始化过程和与用户交互的过程,其中,上述数据层还包括播放对象存储单元和数据对象存储单元,所述DOM放映区只存储最近放映过的Slide和当前正在放映的Slide。与现有技术现相比,本发明专利技术演示放映方法使得原来无法实现的一些诸如交互动画的特殊需求游刃而解,放映系统功能更为强大,更具扩展性,而且加快了执行速度,提高了效率。

【技术实现步骤摘要】

本专利技术涉及计算机应用领域,尤其涉及一种SVG演示放映方法。
技术介绍
随着演示文件(诸如,Microsoft Office、Open Office、WPS Office中的演示文件)在政府办公、教育实践、企业交流等各个领域中的使用越来越广,对演示文件本身的要求也越来越高演示文件已不能仅仅满足于文本、图形、图像和视频了,应该而且必须具备丰富而优秀的交互性能;同一套演示文件必须能很方便的在不同的介质上发布,除了传统的纸和PC之外,还有Web发布、PDA、手机等手持设备。但由于演示文件是二进制文件,不是基于XML(eXtensible MarkupLanguage)的文件,所以要发布或再利用一个演示文件不是很容易。因此,现在有很多研究都在试图重新构建一个更好的演示文件,大致思路是首先基于XML来表达演示的逻辑和表现数据,再利用XSLT或其它工具将XML演示文件转换为具体表现形式,它们都具备生成SVG(Scalable Vector Graphics可伸缩矢量图形)文件的功能,但它们都是直接使用SVG表达演示内容,一方面失去了演示文件中原有的许多特有概念,另一方面导致动画不能重用,进而使得SVG文件尺寸过大等,这对于当今互联网依赖性越来越强的环境下,很不利于网络传输。另外,如果采用纯XML方式表达演示文件的话,虽然逻辑会非常清晰,但会额外增加由XML转换成可被SVG应用程序理解的SVG标准格式文档所需的难度,甚至可能到SVG应用程序无法实现的程度。因此,出现了一种能够尽可能多地保留演示中特有概念而且易于被SVG应用程序理解和应用的SVG格式文档,同时也出现了SVG演示放映方法,参见图1,本公司申请的名称为《一种SVG演示放映器及进行演示放映的方法》专利技术专利公开了一种SVG演示放映方法,该方法有一定不足之处,它在放映时,需要将整个放映列表中的所有Slide数据拷贝到DOM树中的节点中,这样一方面可能导致在整个DOM树中,元素id不唯一,使得一些需求实现起来变得极为复杂甚至无法实现,如交互动画;另一方面,所有的Slide数据都在同一个DOM树中,相互之间的独立性差,在进行页切换时无法实现利用刚播放过的Slide作切换背景,而只能是用黑色作为切换背景;还有,因为频繁地对DOM树进行操作,因此在处理尺寸较大的文档时数据准备阶段的加载时间长,效率很低。
技术实现思路
本专利技术克服了现有技术中的不足,提供一种加载时间短、处理效率高的SVG演示放映方法。为了解决上述技术问题,通过以下技术方案实现一种SVG演示放映方法,该方法将系统分为应用层、逻辑层和数据层,所述应用层主要负责事件的接收,以及把接收到的事件分发给逻辑层中SVG演示放映器中的对应模块;逻辑层中的SVG演示放映器主要包括播放状态管理模块、放映页数据准备模块、页切换模块和页内动画放映模块;数据层包括DOM原始数据定义区、DOM放映区、播放状态存储单元和其它数据存储单元;该演示放映方法还包括放映页的初始化过程和与用户交互的过程,其中,上述数据层还包括播放对象存储单元和数据对象存储单元,所述DOM放映区只存储最近放映过的Slide和当前正在放映的Slide,前者称为节点一,后者称为节点二。上述SVG演示放映方法中,所述数据对象存储单元按照SVG演示文档中自定义放映列表中Slide的放映顺序存放已播放过的Slide对象集;所述播放对象存储单元用于存储原始Slide数据对象集或放映页数据准备模块生成的放映页数据对象集的数组。与现有技术现相比,由于本专利技术演示放映方法中将动态合成的放映页数据全部存储在数据对象存储单元,DOM树中的DOM放映区至多只保留了两份Slide的数据,并且在数据合成完成以后,原始定义数据从DOM树中删除,这样,一方面使DOM树中所有对象的id唯一,各部分数据之间的独立性更强;另一方面大大减小了DOM树的复杂度和大小。使得原来无法实现的一些诸如交互动画的特殊需求游刃而解,放映系统功能更为强大,更具扩展性,而且加快了执行速度,提高了效率。附图说明图1是现有技术中演示放映方法中事件与各模块关系图;图2是本专利技术演示放映方法中事件与各模块关系图;图3是本专利技术演示放映方法中静态数据合成示意图;图4是本专利技术演示放映方法中也切换流程图。具体实施例方式一种SVG演示放映方法,该方法将系统分为应用层、逻辑层和数据层,所述应用层主要负责事件的接收,以及把接收到的事件分发给逻辑层中SVG演示放映器中的对应模块;逻辑层中的SVG演示放映器主要包括播放状态管理模块、放映页数据准备模块、页切换模块和页内动画放映模块;数据层包括DOM原始数据定义区、DOM放映区、播放状态存储单元和其它数据存储单元;该演示放映方法还包括放映页的初始化过程和与用户交互的过程,其中,上述数据层还包括播放对象存储单元和数据对象存储单元,所述DOM放映区只存储最近放映过的Slide和当前正在放映的Slide,前者称为节点一,后者称为节点二。上述SVG演示放映方法中,所述数据对象存储单元按照SVG演示文档中自定义放映列表中Slide的放映顺序存放已播放过的Slide对象集;所述播放对象存储单元用于存储原始Slide数据对象集或放映页数据准备模块生成的放映页数据对象集的数组。本专利技术方法中的数据逻辑结构的改变,使得对应的放映页数据准备模块和页切换模块的处理流程也发生了相应变化。放映页数据准备模块的处理流程是在初始化事件中,调用放映页数据准备模块提供的接口,准备放映页数据。按照Slide的定义顺序获取该Slide原始数据,并根据该Slide原始数据中的一个特殊标识,判断其与对应Master的关联关系,在内存中将Master数据与Slide原始数据按照指定的规则,合成可以直接被SVG播放器显示的一张完整的Slide,即放映页数据,然后将该Slide对象保存到数据对象存储单元中的相应位置,供其它模块使用,使用相同方法直至所有Slide转换完毕,(也可以使用相同方法只将部分Slide转换完毕,而其他Slide可在放映前实时准备,即放映到某一页时,才开始准备这一页的数据;数据来源可以是单独的文件,也可以是多个文件,可以是本地的,也可以是网络上的。)最后,移除DOM树中所有原始Slide数据对应的节点,还可以移除Maste数据对应的节点(作为子权利要求)。如果指定了自定义放映名,则按照指定自定义放映名读取对应的播放列表内容,否则按照文档中Slide的定义顺序作为播放列表内容。页切换模块的处理流程是在页切换过程中,首先要根据当前的状态(主要指当前放映的是第几页)及动作类型,从DOM放映区删除节点一,再从数据对象存储单元中找到目的Slide对应的对象,追加到DOM放映区中。这样,原来的节点二变成了节点一,新追加进去的节点为节点二。最后,触发节点二的页切换动画,并将节点二的页索引号传回给播放状态管理模块,由它对当前播放状态进行更新,将结果保存在播放状态存储单元中,完成整个页切换动作。切换到上一页或下一页与跳转到指定页的主要区别在于切换到上一页或下一页无需播放状态管理提供将要播放的Slide的索引号,只需要提供当前Slide的索引号及动作方向;而切换到指定页不仅需要播放状态管理模块提供当前页的索引号,还需要提供将要播放的S本文档来自技高网
...

【技术保护点】
一种SVG演示放映方法,该方法将系统分为应用层、逻辑层和数据层,所述应用层主要负责事件的接收,以及把接收到的事件分发给逻辑层中SVG演示放映器中的对应模块;逻辑层中的SVG演示放映器主要包括播放状态管理模块、放映页数据准备模块、页切换模块和页内动画放映模块;数据层包括DOM原始数据定义区、DOM放映区、播放状态存储单元和其它数据存储单元;该演示放映方法还包括放映页的初始化过程和与用户交互的过程,其特征在于,上述数据层还包括播放对象存储单元和数据对象存储单元,所述DOM放映区只存储最近放映过的Slide和当前正在放映的Slide,前者称为节点一,后者称为节点二。

【技术特征摘要】

【专利技术属性】
技术研发人员:熊玉辉曾崴
申请(专利权)人:珠海金山软件股份有限公司
类型:发明
国别省市:44[中国|广东]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1