一种客户端图形用户界面快速创建的方法与流程

文档序号:12664356阅读:330来源:国知局
一种客户端图形用户界面快速创建的方法与流程

本发明涉及计算机软件技术领域,尤其涉及一种客户端图形用户界面快速创建的方法。



背景技术:

用户界面,是指系统与用户进行信息交换的媒介,是用户操作硬件达成双向交互、借助硬件完成工作的重要渠道。计算机从早期的只能被少数专业人士使用发展到现在的广泛应用于人们生活的各领域,从命令行用户界面向图形用户界面的转变起了至关重要的作用。

图形用户界面(Graphical User Interface,简称GUI),是一种使用户与硬件间的通信更加便利的界面显示格式,它允许用户通过图标或菜单选项,直观、快捷地完成操作任务。图形用户界面功能的实现,是一个软件开发和其在计算机设备上运行的过程。一般,复杂的图形用户界面,例如游戏(特别是手机游戏)等,往往采用开源的GUI系统开发,如CEGUI系统。

图形用户界面开发完成后,通常会以XML、JSON等这一类使用结构化方法标记数据的文本格式保存,在客户端运行时,通过读取和解析上述图形用户界面存储文件以实现在PC、手机等计算机设备上创建该图形用户界面,进而实现其功能。

一个复杂的图形用户界面,以手机游戏的图形用户界面为例,其通常是由顶层窗口和其所包含的一个或多个子窗口构成,子窗口又可以拥有子窗口,形成一个复杂的层级结构。当图形界面编辑器将制作好的图形用户界面存储为文本格式(即使用了结构化方法标记数据的文本格式)时,以XML为例,每一个窗口存储到一个XML节点中,窗口的属性存储到该节点的属性中;其中,顶层窗口存储到该节点中,子级窗口则存储到顶层窗口节点的子节点中,形成层级(也称树状)的XML结构(参见图1)。在图1中,每一个Window(即窗口)就是一个XML节点,Window后面Type字段存储了它的类型,Name字段则是该窗口的名称,可在游戏中用作查询该窗口的唯一标识;Window下方缩进的行是Window的子节点,其中Property存储Window的属性(包括名称和值),缩进的Window,是子窗口;如此嵌套,形成层级结构。当客户端应用时,则从上述文件结构的存储文本中解析和在设备上创建界面,其实现过程为,通过XML解析器(即对应的存储文件文本格式解析器)获得该XML文件的所有节点和属性,依据节点和属性在设备上创建出Window对象,再根据节点的层级关系设定这些Window对象的父子节点关系,最终获得该XML文件存储内容记录的界面。

XML格式便于开发者阅读和修改,但并不适合计算机设备解析。XML在解析过程中,由于涉及大量的字符串比较、解析和节点遍历,效率低下,容易出现卡顿等问题,影响用户体验。



技术实现要素:

面对上述情况及其存在的问题,如果将图形用户界面的存储数据以一种更能被计算机设备迅速读取解析的格式,可以在一定程度上提高图形用户界面在计算机设备上的创建速度,避免效率低下及卡顿等问题。相较于XML等文本文件,二进制文件不仅可节省空间,而且能够快速地被计算机设备读取。但是,一个复杂的图形用户界面,特别是手机游戏等这一类复杂的图形用户界面,其存储文件存在着复杂的层状结构,加之手机游戏等这类图形用户界面自身的特点,其存储文件转化为二进制文件的过程也非简单的XML、JSON等这一类使用结构化方法标记数据的文本格式文件向二进制文件转化的过程。同时,在图形用户界面的创建过程中,读取二进制文件创建图形用户界面的方法也区别于传统的读取、解析XML等这一类文本文件创建图形用户界面的方法。因此,为解决上述问题,本发明提供一种以二进制文件格式存储的客户端图形用户界面的创建方法。

本发明提供一种客户端图形用户界面快速创建的方法,该方法通过获取并反序列化存储图形用户界面信息的二进制文件,以此来创建其所存储的图形用户界面,在一定程度上提高图形用户界面在计算机设备上的创建速度,避免了现有技术中使用XML、JSON等这一类使用结构化方法标记数据的文本格式文件存储在图形用户界面创建时该类型存储文件解析效率低下、容易出现图形用户界面卡顿的问题。特别是游戏(如手机游戏),其对每秒帧数要求较高,其图形用户界面频繁解析加载,更需要这种快速创建的方法。

本发明实施例提供一种客户端图形用户界面快速创建的方法,该方法包括:

S1根据文件标识获取存储图形用户界面信息的二进制文件;

所述二进制文件是根据图形用户界面存储文件进行二进制转化获得;所述图形用户界面存储文件是以XML、JSON等这一类使用结构化方法标记数据的文本格式存储;所述二进制文件包括文本标识、版本信息、节点类型及节点内容等;

S2根据所述二进制文件中的版本信息获取与之对应的反序列化器组;每个文件版本,都有一组与其对应的反序列化组;

S3通过所述反序列化器组中的反序列化器从顶层窗口节点起逐层节点反序列化所述二进制文件,创建其所记载的图形用户界面;具体地,

从顶层窗口节点,根据其节点类型反序列化当前层节点,该节点反序列化完成后,判断该层节点是否仍有子节点未被序列化,即判断逐层反序列化进程是否完成,若是,则退出所述逐层反序列化进程,若否,则进一步反序列化所述子节点,如此逐层反序列化直至全部节点被反序列化。

进一步,上述方法中,所述二进制文件中,

所述文件标识,标识客户端中的文件是否属于所述二进制文件;

所述版本信息,标记当前版本信息;不同版本信息对应不同的反序列化器组;

所述节点,是指所述二进制文件中图形用户界面信息的基本存储单位;所述节点按照类型分为窗口、自动窗口、引用文件、事件等;

此外,所述图形用户界面的存储文件通常是由开发者通过GUI系统开发图形用户界面并序列化保存获得,或通过自行开发编写获得;进一步,所述的GUI系统,优选为面向对象设计的GUI开发系统,如CEGUI系统;

进一步,根据其节点类型反序列化当前层节点,其中,

当所述节点类型为窗口时,所述节点内容为窗口及窗口中控件的信息;其反序列化过程为,窗口反序列化器调取窗口,然后从所述窗口信息中读取其属性信息并据此设置所述窗口,控件反序列化器调取对应的控件,然后从所述控件信息中读取其属性信息并据此设置所述控件;

当所述节点类型为自动窗口时,所述自动窗口为已创建窗口,不需要窗口反序列化器再创建,此时,所述节点内容为窗口及窗口中控件的信息;其反序列化过程为,窗口反序列化器从所述窗口信息中读取其属性信息并据此设置所述自动窗口,控件反序列化器调取对应的控件,然后从所述控件信息中读取其属性信息并据此设置所述控件;

当所述节点类型为引用文件时,所述节点内容则为所述引用文件的地址;其反序列化过程为,根据所述地址获取所述引用文件,并跳转执行步骤S1;

当所述节点类型为事件时,所述节点内容为事件信息;其反序列化过程为,读取所述事件信息,设置所述事件;运行中,若触发该事件,则调用其处理函数;

再进一步,所述控件,根据图形用户界面窗口中常见的元素,一般包括文本、按钮、滚动窗口等控件;所述控件反序列化器反序列化对应的控件,具体地,

当所述控件为文本时,文本型反序列化器调用文本框控件,然后从所述控件信息中读取所述文本框的文本内容、字体名称、字号等属性信息,并据此设置所述文本框控件;

若所述文本框为输入框,则所述文本内容为空或显示提示性文字;

当所述控件为按钮时,按钮型反序列化器调用按钮框控件,然后从所述控件信息中读取所述按钮的按钮状态等属性信息,并据此设置所述按钮控件;所述按钮状态通常包括未按下、按下和/或禁用状态;

当所述控件为滚动窗口时,窗口型反序列化器调用窗口,然后从所述控件信息中读取滚动区域等属性信息,并据此设置所述滚动窗口控件。

由于游戏(如手机游戏)对每秒帧数要求较高,其图形用户界面频繁解析加载,上述方法,尤其适用于游戏(如手机游戏)的图形用户界面的快速创建。

本发明通过获取并反序列化存储图形用户界面信息的二进制文件,以此来创建其所存储的图形用户界面,在一定程度上提高图形用户界面在计算机设备上的创建速度,避免了现有技术中使用XML、JSON等这一类使用结构化方法标记数据的文本格式文件存储在图形用户界面创建时该类型存储文件解析效率低下、容易出现界面卡顿的问题,大大提升了用户体验。

附图说明

图1为以XML文本格式保存的图形用户界面文件的一部分内容的示例;

图2为本发明实施例提供一种客户端图形用户界面快速创建的方法的流程示意图;

图3为在实施例2基础上公开的一种客户端图形用户界面快速创建的程序流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和取得的有益效果更加清楚,下面结合附图,对本发明实施例中的技术方案进行清楚、完整地表述。但是应当理解,此处描述的实施例仅用于说明和解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域的技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种客户端图形用户界面快速创建的方法,如图2所示,该方法包括:

S1根据文件标识获取存储图形用户界面信息的二进制文件;

所述二进制文件是根据图形用户界面存储文件进行二进制转化获得;所述图形用户界面存储文件是以XML、JSON等这一类使用结构化方法标记数据的文本格式存储;所述二进制文件包括文本标识、版本信息、节点类型及节点内容等;

S2根据所述二进制文件中的版本信息获取与之对应的反序列化器组;每个文件版本,都有一组与其对应的反序列化组;

S3通过所述反序列化器组中的反序列化器从顶层窗口节点起逐层节点反序列化所述二进制文件,创建其所记载的图形用户界面;

进一步,所述图形用户界面的存储文件由开发者通过GUI系统开发图形用户界面并序列化保存获得,或通过自行开发编写获得;再进一步,所述的GUI系统,优选为面向对象设计的GUI开发系统,如CEGUI系统;

进一步,所述二进制文件中,

所述文件标识,标识客户端中的文件是否属于所述二进制文件,例如,定义文件中的首段字节为文件标识,比如定义文件中首4个字节为文件标识,其中二进制文件标识为LBFM,即Layout Binary File Magic的缩写;

所述版本信息,标记当前版本信息;不同版本信息对应不同的反序列化器组;通常版本信息通常由几段字母数字组成,如V1.1.0.31,并以整形数据格式存储;

所述节点,是指所述二进制文件中图形用户界面信息的基本存储单位;所述节点按照类型分为窗口、自动窗口、引用文件、事件等;所述节点类型也以整形数据格式存储;比如定义0为窗口、1为自动窗口、2引用文件、3为事件;

在本发明公开的一些实施例中,在上述实施例基础上,如图3所示,

从顶层窗口节点,根据其节点类型反序列化当前层节点,该节点反序列化完成后,判断该层节点是否仍有子节点未被序列化,即判断逐层反序列化进程是否完成,若是,则退出所述逐层反序列化进程,若否,则进一步反序列化所述子节点,如此逐层反序列化直至全部节点被反序列化;

进一步,根据其节点类型反序列化当前层节点,其中,

当所述节点类型为窗口时,所述节点内容为窗口及窗口中控件的信息;其反序列化过程为,窗口反序列化器调取窗口,然后从所述窗口信息中读取其属性信息并据此设置所述窗口,控件反序列化器调取对应的控件,然后从所述控件信息中读取其属性信息并据此设置所述控件;

当所述节点类型为自动窗口时,所述自动窗口为已创建窗口,不需要窗口反序列化器再创建,此时,所述节点内容为窗口及窗口中控件的信息;其反序列化过程为,窗口反序列化器从所述窗口信息中读取其属性信息并据此设置所述自动窗口,控件反序列化器调取对应的控件,然后从所述控件信息中读取其属性信息并据此设置所述控件;

当所述节点类型为引用文件时,所述节点内容则为所述引用文件的地址;其反序列化过程为,根据所述地址获取所述引用文件,并跳转执行步骤S1;

当所述节点类型为事件时,所述节点内容为事件信息;其反序列化过程为,读取所述事件信息,设置所述事件;运行中,若触发该事件,则调用其处理函数;

再进一步,所述控件,根据图形用户界面窗口中常见的元素,一般包括文本、按钮、滚动窗口等控件;所述控件反序列化器反序列化对应的控件,具体地,

当所述控件为文本时,文本型反序列化器调用文本框控件,然后从所述控件信息中读取所述文本框的文本内容、字体名称、字号等属性信息,并据此设置所述文本框控件;

若所述文本框为输入框,则所述文本内容为空或显示提示性文字;

当所述控件为按钮时,按钮型反序列化器调用按钮框控件,然后从所述控件信息中读取所述按钮的按钮状态等属性信息,并据此设置所述按钮控件;所述按钮状态通常包括未按下、按下和/或禁用状态;

当所述控件为滚动窗口时,窗口型反序列化器调用窗口,然后从所述控件信息中读取滚动区域等属性信息,并据此设置所述滚动窗口控件。

由于游戏(如手机游戏)对每秒帧数要求较高,其图形用户界面频繁解析加载,上述方法,尤其适用于游戏(如手机游戏)的图形用户界面的快速创建。

上述实施例通过获取并反序列化存储图形用户界面信息的二进制文件,以此来创建其所存储的图形用户界面,在一定程度上提高图形用户界面在计算机设备上的创建速度,避免了现有技术中使用XML、JSON等这一类使用结构化方法标记数据的文本格式文件存储在图形用户界面创建时该类型存储文件解析效率低下、容易出现界面卡顿的问题,大大提升了用户体验。

最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1