著录项信息
专利名称 | 3D用户界面切换的设计方法及其系统 |
申请号 | CN201110181736.X | 申请日期 | 2011-06-30 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2011-10-19 | 公开/公告号 | CN102222003A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/44 | IPC分类号 | G;0;6;F;9;/;4;4查看分类表>
|
申请人 | TCL集团股份有限公司 | 申请人地址 | 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | TCL集团股份有限公司 | 当前权利人 | TCL集团股份有限公司 |
发明人 | 卢伟超 |
代理机构 | 深圳市君胜知识产权代理事务所 | 代理人 | 王永文;杨宏 |
摘要
本发明公开了3D用户界面切换的设计方法及其系统,其设计方法包括:根据用户界面的状态模式定义场景状态类型;根据场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;由各场景状态模块在场景管理模块中进行注册,并记录各自的当前状态;由场景管理模块记录所有注册信息和各模块的当前状态;由场景管理模块接收外界的控制指令,并仅向当前场景状态模块分发控制消息;当前场景状态模块根据控制消息,相应更新显示的画面或者将用户界面切换至下一场景状态模块。本发明通过将3D用户界面设计模式中的状态模式的状态进行封装的方式,来解决switch-case语句分支过多难以维护的问题,提高了代码的重用性、可维护性。
1.一种3D用户界面切换的设计方法,其特征在于,包括:
根据用户界面的状态模式定义场景状态类型;
根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;
由各场景状态模块在场景管理模块中进行注册,并记录各自的当前状态,各场景状态模块均具有自动注册的功能,将其各自的功能和当前所处的状态注册到场景管理模块中;
由场景管理模块记录所有场景状态模块的注册信息和各场景状态模块的当前状态;
由场景管理模块接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述控制消息包括界面更新消息和界面切换消息;
所述当前场景状态模块根据所述控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块;
其中,当增加场景状态类型时,所述的方法还包括:
G1、增加新的场景状态模块;
G2、将新增的场景状态模块在场景管理模块中进行注册,并记录该新增场景状态模块当前所处的状态;
其中,在增加新的状态模式时,只需在定义场景状态类型的文件中添加新的状态类型和新增的场景状态模块,其它场景状态模块不用改变。
2.根据权利要求1所述的3D用户界面切换的设计方法,其特征在于,在创建场景状态模块时,所述的方法具体包括:
B1、将所述场景状态模块分解为模型单元、视图单元和控制单元;
B2、给所述模型单元、视图单元和控制单元分别定义相应的功能;其中,所述模型单元用于获取相应场景状态模块的实时信息,视图单元用于根据所述实时信息更新用户界面显示的画面,控制单元用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面显示的画面;
B3、建立模型单元、视图单元和控制单元之间的交互。
3.根据权利要求2所述的3D用户界面切换的设计方法,其特征在于,在场景状态模块更新用户界面显示的画面时,具体包括:
F1、由控制单元接收场景管理模块分发的控制消息;
F2、由模型单元根据控制消息获取相应场景状态模块的实时信息;
F3、所述视图单元根据所述实时信息更新用户界面显示的画面。
4.根据权利要求1至3任意一项所述的3D用户界面切换的设计方法,其特征在于,所述场景状态模块包括天气预报模块、股票模块、购物菜单模块和新闻模块。
5.根据权利要求1所述的3D用户界面切换的设计方法,其特征在于,外界的控制指令为鼠标或者键盘发送的控制指令。
6.一种3D用户界面切换的设计系统,其特征在于,包括:
场景定义模块,用于根据用户界面的状态模式定义场景状态类型;
创建模块,用于根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;
所述场景状态模块,用于在场景管理模块中进行注册,并记录各自的当前状态,并且具有自动注册的功能,将各自的功能和当前所处的状态注册到场景管理模块中;以及根据场景管理模块发送的控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块;
场景管理模块,用于记录所有场景状态模块的注册信息和各场景状态模块的当前状态;以及接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述消息包括界面更新消息和界面切换消息;
其中,所述的3D用户界面切换的设计系统,还包括添加模块,用于添加场景状态类型和场景状态模块;
新增的场景状态模块,用于在所述场景管理模块中进行注册,并记录其当前所处的状态;以及根据场景管理模块发送的控制消息,更新用户界面显示的画面或者切换用户界面;
在增加新的状态模式时,只需在定义场景状态类型的文件中添加新的状态类型和新增的场景状态模块,其它场景状态模块不用改变;
所述场景管理模块,还用于记录新增场景状态模块的注册信息和其当前所处的状态;
以及根据控制指令向新增场景状态模块分发控制消息。
7.根据权利要求6所述的3D用户界面切换的设计系统,其特征在于,所述场景状态模块包括:
模型单元,用于获取相应场景状态模块的实时信息;
视图单元,用于根据所述实时信息更新用户界面显示的画面;
控制单元,用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面的画面。
8.根据权利要求6或7所述的3D用户界面切换的设计系统,其特征在于,所述场景状态模块包括天气预报模块、股票模块、购物菜单模块和新闻模块。
3D用户界面切换的设计方法及其系统\n技术领域\n[0001] 本发明涉及3D用户界面的设计,特别涉及一种3D用户界面切换的设计方法及其系统。\n背景技术\n[0002] 嵌入式系统是以应用为中心、以计算机技术为基础,且软硬件可裁剪,适用于应用系统,对其功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。由于系统硬件平台受到系统的体积、功耗等限制,所以只能提供有限的系统资源,如有限的RAM(随机存储器)、flash(闪存)等,这样便对嵌入式软件系统提出了更高的要求:要求其具有更高的执行效率;更高效地进行设计,量体裁衣、去除冗余;可维护性、可扩展性、可重用性是其基本的设计要求。\n[0003] 在3D UI(User Interface,用户界面)的开发过程中,需要根据不同的按键切换到不同的显示场景,例如,按A键切换到天气预报场景,按B键切换到股票场景等等。\n[0004] 目前一般采用switch-case语句进行界面的切换处理,但这样会造成一个问题:\n程序的分支过多,而且如果加入一个新的状态,需要对原来的代码进行编译,这样使软件的开发维护成本增加,使3D UI的可扩展性,可重用性降低。\n[0005] 并且,与软件处理问题的内在模型比较,用户界面经常需要改变,因此在3D用户界面的开发过程中,如何在实现不改变软件的功能和模型的情况下,能够方便的完成软件界面构造的调整,是本领域的急需解决的问题。\n发明内容\n[0006] 鉴于上述现有技术的不足之处,本发明的目的在于提供一种3D用户界面切换的设计方法和系统,以解决现有技术switch-case语句分支过多,系统难以维护的问题。\n[0007] 为了达到上述目的,本发明采取了以下技术方案:\n[0008] 一种3D用户界面切换的设计方法,其中,包括:\n[0009] A、根据用户界面的状态模式定义场景状态类型;\n[0010] B、根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;\n[0011] C、由各场景状态模块在场景管理模块中进行注册,并记录各自的当前状态,各场景状态模块均具有自动注册的功能,将其各自的功能和当前所处的状态注册到场景管理模块中;\n[0012] D、由场景管理模块记录所有场景状态模块的注册信息和各场景状态模块的当前状态;\n[0013] E、由场景管理模块接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述控制消息包括界面更新消息和界面切换消息;\n[0014] F、所述当前场景状态模块根据所述控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块;\n[0015] 其中,当增加场景状态类型时,所述的方法还包括:\n[0016] G1、增加新的场景状态模块;\n[0017] G2、将新增的场景状态模块在场景管理模块中进行注册,并记录该新增场景状态模块当前所处的状态;\n[0018] 其中,在增加新的状态模式时,只需在定义场景状态类型的文件中添加新的状态类型和新增的场景状态模块,其它场景状态模块不用改变。\n[0019] 所述的3D用户界面切换的设计方法,其中,在创建场景状态模块时,所述的方法具体包括:\n[0020] B1、将所述场景状态模块分解为模型单元、视图单元和控制单元;\n[0021] B2、给所述模型单元、视图单元和控制单元分别定义相应的功能;其中,所述模型单元用于获取相应场景状态模块的实时信息,视图单元用于根据所述实时信息更新用户界面显示的画面,控制单元用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面显示的画面;\n[0022] B3、建立模型单元、视图单元和控制单元之间的交互。\n[0023] 所述的3D用户界面切换的设计方法,其中,在场景状态模块更新用户界面显示的画面时,具体包括:\n[0024] F1、由控制单元接收场景管理模块分发的控制消息;\n[0025] F2、由模型单元根据控制消息获取相应场景状态模块的实时信息;\n[0026] F3、所述视图单元根据所述实时信息更新用户界面显示的画面。\n[0027] 所述的3D用户界面切换的设计方法,其中,所述场景状态模块包括天气预报模块、股票模块、购物菜单模块和新闻模块。\n[0028] 所述的3D用户界面切换的设计方法,其中,外界的控制指令为鼠标或者键盘发送的控制指令。\n[0029] 一种3D用户界面切换的设计系统,其中,包括:\n[0030] 场景定义模块,用于根据用户界面的状态模式定义场景状态类型;\n[0031] 创建模块,用于根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;\n[0032] 所述场景状态模块,用于在场景管理模块中进行注册,并记录各自的当前状态,并且具有自动注册的功能,将各自的功能和当前所处的状态注册到场景管理模块中;以及根据场景管理模块发送的控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块;\n[0033] 场景管理模块,用于记录所有场景状态模块的注册信息和各场景状态模块的当前状态;以及接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述消息包括界面更新消息和界面切换消息;\n[0034] 其中,所述的3D用户界面切换的设计系统,还包括添加模块,用于添加场景状态类型和场景状态模块;\n[0035] 新增的场景状态模块,用于在所述场景管理模块中进行注册,并记录其当前所处的状态;以及根据场景管理模块发送的控制消息,更新用户界面显示的画面或者切换用户界面;\n[0036] 在增加新的状态模式时,只需在定义场景状态类型的文件中添加新的状态类型和新增的场景状态模块,其它场景状态模块不用改变;\n[0037] 所述场景管理模块,还用于记录新增场景状态模块的注册信息和其当前所处的状态;以及根据控制指令向新增场景状态模块分发控制消息。\n[0038] 所述的3D用户界面切换的设计系统,其中,所述场景状态模块包括:\n[0039] 模型单元,用于获取相应场景状态模块的实时信息;\n[0040] 视图单元,用于根据所述实时信息更新用户界面显示的画面;\n[0041] 控制单元,用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面的画面。\n[0042] 所述的3D用户界面切换的设计系统,其中,所述场景状态模块包括天气预报模块、股票模块、购物菜单模块和新闻模块。\n[0043] 本发明提供的一种3D用户界面切换的设计方法及其系统,其设计方法先根据用户界面的状态模式定义场景状态类型;之后,根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;之后,将各场景状态模块的功能在场景管理模块中进行注册,并记录各自的当前状态;由场景管理模块记录所有场景状态模块的注册信息和各场景状态模块的当前状态;并且在场景管理模块接收外界的控制指令时,根据所述控制指令向当前场景状态模块发送相应的控制消息;再由当前场景状态模块根据所述控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块。本发明通过将3D用户界面设计模式中的状态模式的状态进行封装的方式,来解决switch-case语句分支过多难以维护的问题,当用户界面需要从一种状态切换至另一种状态时,把切换责任交给具体的前场景状态模块去负责,提高了代码的重用性、可维护性、可扩展性,从而提高软件的开发速度。\n[0044] 并且,本发明将场景状态模块采用模型视图控制模式方式分离数据访问和数据表现(即界面更新),从而实现了在不改变软件的功能和模型的前提下,完成对软件界面构造的调整。\n附图说明\n[0045] 图1为本发明实施例提供的3D用户界面切换的设计方法流程图。\n[0046] 图2为本发明实施例提供的各个模块的状态模式示意图。\n[0047] 图3为本发明实施例提供的场景状态模块中各单元的状态控制示意图。\n具体实施方式\n[0048] 本发明提供一种3D用户界面切换的设计方法及其系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。\n[0049] 本发明实施例提供的3D用户界面切换的设计方法,请参阅图1,其包括:\n[0050] S11、根据用户界面的状态模式定义场景状态类型。\n[0051] 本发明实施例中,场景状态类型根据当前嵌入式电视系统的设计画面进行定义。\n例如,可定义天气预报状态、股票状态、购物菜单状态、新闻状态,并将所定义的天气预报状态、股票状态、购物菜单状态、新闻状态放在一个单独的文件中。\n[0052] S21、根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块。\n[0053] 本实施方式采用设计模式中的状态模式(即根据上述定义的场景状态类型),进行模块化划分,并创建场景管理模块。如根据上述的各个场景状态类型,将各场景状态模块划分为:天气预报模块、股票模块、购物菜单模块和新闻模块,如图2所示。\n[0054] S31、由各场景状态模块在场景管理模块中进行注册,并记录各自的当前状态。\n[0055] 本发明实施例中,各场景状态模块(如天气预报模块、股票模块、购物菜单模块和新闻模块)均具有自动注册的功能,将其各自的功能和当前所处的状态注册到场景管理模块中。\n[0056] 这种方式,就像学生到学校报到将自己的学籍等信息注册到学校一样。相应地,各场景状态模块知道自己所处的状态,就像学生知道自己的名字一样(例如,天气预报模块知道自己的状态所处的状态时是天气预报状态);各场景状态模块具有记录场景管理的功能,就像学生知道自己上的是哪所学校一样。各场景状态模块具备调用场景管理模块更改当前状态的功能,就像学生找校长更改自己所在的班级。\n[0057] S41、由场景管理模块记录所有场景状态模块的注册信息和各场景状态模块的当前状态。\n[0058] 如图2所示,在场景管理模块中记录了天气预报模块、股票模块、购物菜单模块和新闻模块的注册住处,此外,它还记录了各个模块的当有状态。在图2中场景管理模块与天气预报模块之间的连线采用实线,表示场景管理模块记录了天气预报模块为当前工作的模块,场景管理模块与其它模块之前采用虚线连接,则表示为当前不工作的模块。例如,场景管理模块中记录了天气预报模块正在播报天气预报,其它模块处理未使用状态,就像学校保存有所有学生的信息一样和记录学生第一名的信息一样。\n[0059] S51、由场景管理模块接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述控制消息包括界面更新消息和界面切换消息。\n[0060] 本发明实施例中,所述场景管理模块还具有接收外界的控制指令的功能。其中,外界的控制指令为用户通过鼠标或者键盘输入的控制指令。场景管理模块收到控制指令之后,仅向当前工作的场景状态模块分发控制消息,比如,用户界面正在播报天气预报模块,场景管理模块仅向天气预报模块发送界面切换消息,通知天气预报模块切换用户界面,而不向其它场景状态模块分发控制消息,就像学校只向成绩第一名的学生发奖学金一样。\n[0061] S61、所述当前场景状态模块根据所述控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块。\n[0062] 因为场景管理模块记录的状态所对应的模块才能接受到按键或者鼠标消息等,所以只有当前状态所对应的模块,才具备切换界面的功能。例如,场景管理模块记录电视机的当前工作状态为天气预报状态,场景管理模块便仅向天气预报模块发送切换用户界面消息,当前天气预报模块接到切换用户界面的消息后,调用场景管理模块的切换状态功能,将用户界面切换到股票模块。\n[0063] 如图2所设计的用户界面,实线连接的场景状态模块表示当前能接收控制消息的模块,虚线则表示不能接收消息的模块。然而,天气预报模块与其它场景状态模块的切换关系,通过调用场景状态模块的切换功能直接进行切换,如图所示,天气预报模块切换至购物菜单模块时,通过调用场景管理模块的切换状态功能,将用户界面切换至购物菜单模块。\n[0064] 本发明实施例中,当用户界面系统中的场景状态类型增加时,首先需增加新的场景状态模块;然后将新增的场景状态模块在场景管理模块中进行注册,并记录该新增场景状态当前所处的状态。\n[0065] 如图2所示,在增加新的状态模式时,只需在定义场景状态类型的文件中添加新的状态类型和新增的场景状态模块,其它场景状态模块不用改变。例如,当需要增加影视模块时,只需在定义场景状态类型的文件中增加影视类型和影视模块,然后将影视模块注册至场景管理模块中即可。同时,影视模块还具备记录自己状态的功能。\n[0066] 由于天气预报模块、股票模块、购物菜单模块与新闻模块的显示界面可能经常变化,但是各个场景状态模块中的数据不变,本发明实施例采用模型视图控制模式实现数据与现实(界面更新)的分离。模型视图控制模式,其设计模式从结构上强制的分开业务逻辑和应用界面的耦合,使其两者可独立地进行扩展,并提供了更大的重用性。\n[0067] 因此,本发明在创建场景状态模块时具体包括:第一步、将每一场景状态模块分解为模型单元、视图单元和控制单元;第二步、给所述模型单元、视图单元和控制单元分别定义相应的功能;其中,所述模型单元用于获取相应场景状态模块的实时信息,并针对数据的处理和保存,视图单元用于根据所述实时信息更新用户界面显示的画面,控制单元用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面显示的画面;第三步、建立模型单元、视图单元和控制单元之间的交互。\n[0068] 其中,模型单元、视图单元和控制单元之间的交互如图3所示,控制单元接收到不同的控制消息时,会更新视图单元的显示或者模型单元的数据,当更新视图单元时,视图单元将从模型单元获得数据并更新显示,当更新模型单元时,更新模型单元中的数据,然后调用视图单元的刷新方法,更新显示。\n[0069] 在场景状态模块更新用户界面显示的画面时,其具体包括:由控制单元接收场景管理模块分发的控制消息;由模型单元根据控制消息获取相应场景状态模块的实时信息;\n所述视图单元根据所述实时信息更新用户界面显示的画面。\n[0070] 本发明实施例中,所述天气预报模块、股票模块、购物菜单模块与新闻模块中的模型视图控制模式架构完全相同,例如天气预报模块可将其分为天气预报模型单元,天气预报视图单元和天气预报控制单元。其中,天气预报模型单元的功能为从中国气象局网站获得天气信息,天气预报视图单元根据天气类型实现界面上的显示,天气预报控制单元实现对用户输入控制指令的响应。\n[0071] 例如,当用户想看西安的天气情况时,通过键盘输入西安,天气预报控制单元接收到场景管理模块分发的控制消息后,更改天气预报视图单元中城市显示为西安,同时使天气预报模型单元获得目前西安的天气状况,并根据获得西安的天气情况后,更新天气预报视图。\n[0072] 本发明还对应提供一种3D用户界面切换的设计系统,其包括:场景定义模块用于根据用户界面的状态模式定义场景状态类型;创建模块用于根据所述场景状态类型,创建场景管理模块和与各场景状态类型对应的场景状态模块;所述场景状态模块用于在场景管理模块中进行注册,并记录各自的当前状态;以及根据场景管理模块发送的控制消息,相应更新用户界面显示的画面或者将用户界面切换至下一场景状态模块。场景管理模块用于记录所有场景状态模块的注册信息和各场景状态模块的当前状态;以及接收外界的控制指令,并根据所述控制指令向当前场景状态模块发送相应的控制消息;其中,所述消息包括界面更新消息和界面切换消息。其中,所述场景状态模块包括天气预报模块、股票模块、购物菜单模块和新闻模块。\n[0073] 当需要增加新的状态类型时,所述的设计系统还包括:添加模块用于添加场景状态类型和场景状态模块;新增的场景状态模块用于在所述场景管理模块中进行注册,并记录其当前所处的状态;以及根据场景管理模块发送的控制消息,更新用户界面显示的画面或者切换用户界面;所述场景管理模块还用于记录新增场景状态模块的注册信息和其当前所处的状态;以及根据控制指令向新增场景状态模块分发控制消息。\n[0074] 本发明实施例中,所述场景状态模块包括:模型单元用于获取相应场景状态模块的实时信息;视图单元用于根据所述实时信息更新用户界面显示的画面;控制单元用于响应场景管理模块分发的控制消息,控制视图单元从模型单元中获取所述实时信息,并根据所述实时信息更换用户界面的画面。\n[0075] 其中,场景状态模块基于状态模式与模型视图控制模式具有一般通用性,它不受限于系统的硬件和软件平台,通过使状态模式与模型视图控制模式,提高3D UI开发代码的重用性、可维护性、可扩展性、提高软件的开发速度,降低软件的开发成本。\n[0076] 综上所述,本发明通过将3D用户界面设计模式中的状态模式的状态进行封装的方式,来解决switch-case语句分支过多难以维护的问题,当用户界面需要从一种状态切换至另一种状态时,把切换责任交给具体的前场景状态模块去负责,提高了代码的重用性、可维护性、可扩展性,从而提高软件的开发速度。\n[0077] 并且,本发明将场景状态模块采用模型视图控制模式方式分离数据访问和数据表现(即界面更新),从而实现了在不改变软件的功能和模型的前提下,完成对软件界面构造的调整。\n[0078] 可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
法律信息
- 2015-04-01
- 2012-10-17
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 201110181736.X
申请日: 2011.06.30
- 2011-10-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-01-14
|
2008-08-26
| | |
2
| |
2008-12-03
|
2008-07-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |