利用区域判断处理按键高亮点效果的方法 本发明是关于一种应用于图像显示的电子系统中的多媒体(multi-media)界面技术,特别是利用区域判断法,来处理功能按键(functionbutton)从而提示使用者所呈现的按键高亮点(highlight)效果的技术。
目前大多数的电脑系统大都是采用图形界面控制做为使用者界面,例如微软(Microsoft)的Windows 3.1/95操作系统。其优点在于使用者可以透过预先设定的各类功能按键,而采用直觉式的操作方式来进行,所以使用者并不需要记忆各种繁复的指令,藉此便可以建立良好的人机界面。在这类操作系统的操作界面上,会根据设计者的设计或者是使用者自行的设定,显示出各种图形化的按键,分别用以说明各种操作的指令;对应于每个圆形化按键则有一不可见的触发区。当使用者操作鼠标器(或其他指向装置)使得荧幕上的光标(cursor)移动到某一特定的触发区时,则对应地图形化按键会显示出高亮点状态,甚至光标会改变形状,藉以提示使用者此一区域会触发其他的事件。而当使用者按下鼠标器按钮时,便能够触发此一区域所对应的事件。因此,在一般图形界面的系统中,按键高亮点效果是用来提示使用者,目前的光标位置已经进入显示高亮点效果的触发区域内,换句话说,亦是在图形化操作界面上定位(position)出所需功能,因此这是多媒体技术中相当重要的技巧。
要实现上述的按键高亮点效果,首先,要能够判断出目前光标的位置是否出现在特定的触发区域中,当光标进入某一触发区域中时,便将对应的高亮点图形贴至对应的区域内。现有技术处理按键高亮点效果的方式,主要是利用控制元件来加以处理。以下则分别对两种现有技术常见的处理方式加以说明。
已知的第一种处理方式,是对于每个触发区域使用两个图形控制元件(picture control)来处理,其中一个图形控制元件是用来判断光标是否进入触发区域,另一个图形控制元件则是用来显示具有高亮点效果的图形。图形控制元件是一种标准控制元件,具有显示点阵图像(bitmap)的功能,同时亦可以作为其他控制元件的容器。当光标进入指定的触发区域时,第一个图形控制元件便可以探测出光标已经到达,而第二个图形控制元件便可以将事先存放的具有高亮点效果图形显示在对应的位置上,并改变光标的形状。另一方面,当光标回到图形界面的背景时,第一个图形控制元件便可以探测到此一光标的目前位置,而另一图形控制元件便可以将高亮点显示状态加以关闭。藉此,根据光标位置以及触发区域的设定,便可以达到显示高亮点的目的。
基本上,第一种方法在处理上较为简单,然而缺点即在于非常浪费存储器空间。例如在一个图形界面上具有8个触发区域,就必须使用到8×2(每个触发区域需要两个控制元件)=16个控制元件。以MicrosoftWindows为例,每一个控制元件至少必须申请8k比特组的存储器空间,因此16个控制元件就必须申请16×8=128k的存储器空间。必须注意的是,上述的存储器空间尚不包括用来存储高亮点状态的图形所需的存储器,随着在图形界面上的触发区域数量愈大,所需要的存储器空间必定相对地快速增加,因此对某些需要定义大量触发区域的应用程序而言,将会消耗掉庞大的存储器空间。
已知的第二种处理方式,则只对每个触发区域使用一个高亮点控制元件。在此处理方式中,会在事先将一高亮点状态图形的大图存储在内部存储器之内,此大图中包括许多可以切割的小图,分别对应于图形界面上的所有触发区域,所以当光标进入该触发区域时,能够显示此按键区域的高亮点状态图形。上述的高亮点控制元件本身并没有存储高亮点状态图形。在初始状态下,亦即光标尚未进入触发区域时,高亮点控制元件是负责判断是否有光标进入触发区域;当光标移入特定的触发区域时,高亮点控制元件会动态地由大图中剪裁出适当的高亮点状态小图,而在对应的按键图形区域上显示出高亮点状态图形。
很明显的,第二种处理方式所使用的控制元件数量,会比第一种处理方式减少一半,这意味着可以提升载入整个图形界面所需的时间。但是此一处理方式仍有其限制,京即触发区域和显示高亮点状态的图形大小、位置最小一样,否则在将触发区域进行高亮点显示时的速度会非常缓慢,此为其第一个缺点。另外,此处理方法中虽然减少了一半的存储器空间,不过所需的存储器空间仍然非常庞大。例如同样在需要8个触发区域的界面上,仍需要有8个控制元件,亦即仍需要申请到64k的存储器空间。
有鉴于此,本发明的主要目的,在于提供一种处理按键高亮点效果的方法,它能够减少处理高亮点效果所需要配置的存储器空间,进而减少载入整个图形界面所需要的时间。
本发明的另一目的,在于提供一种处理按键高亮点效果的方法,它能够实时地针对光标(鼠标器或其他指向装置所产生)的位置以及预设的触发区域,快速地显示出高亮点效果的图形。
根据上述的目的,本发明提出一种利用区域判断来处理按键高亮点效果的方法,可以适用在具有多个触发区域的图形界面上,用来处理光标移入任一触发区域内时所产生的按键高亮点效果。首先,将一高亮点状态图形和一位置信息文件载入到存储器中。此高亮点状态图形是由分别对应于触发区域的多个高亮点状态小图所构成,并且是在事前利用图像处理程序拼凑各高亮点状态小图而产生的。位置信息文件则是用来存储各触发区域以及高亮点状态图形的相关位置信息。
当使用者利用指向装置(如鼠标器)移动显示器上的光标位置时,便可以根据光标位置和位置信息文件中的相关信息,来判断光标是否在某一特定的触发区域之内。当光标位置是在某一个触发区域内时,便可以由预先载入的高亮点状态图形中,剪裁出对应于此触发区域的高亮点状态小图,并且显示在此触发区域的荧幕位置。而当光标的位置移出了触发区域时,便可以立即清除先前所显示的高亮点状态小图,并且,开始持续性地对每个触发区域进行光标探测,直到其再进入任一触发区域为止,再利用上述的方式显示所需的按键高亮点效果。通过以上的方式,便能够随着荧幕上的光标移动而呈现出高亮点效果,同时不需要对每个触发区域配置控制元件,进而增加载入速度以及节省内部存储器空间。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下:
图1系为本发明实施例中所采用的硬件结构图。
图2系为本实施例中利用区域判断处理按键高亮点效果的方法流程图。
图3系为在本实施例中位置信息文件的格式示意图。
图4系为图2中载入位置信息文件的详细步骤流程图。
图5系为图2中处理按键区高亮点显示效果的详细步骤流程图。
图6系为图2中处理按下鼠标器按钮的详细步骤流程图。
图7系为本发明实施例中,用以与现有技术比较所采用的图形界面首页的示意图。
实施例:
本发明所提出的按键高亮点效果的处理方法,主要是利用区域判断法来加以实施,并不需要使用现有技术所采用的控制元件,因此能够达到增加载入速度和节省内部存储器空间的优点。以下参考附图,对于本发明的实施例加以详细说明。
图1表示本实施例中所采用的硬件结构图,其基本上与一般个人电脑系统相同。此结构中包括用来显示图像的显示器2、做为处理及控制中枢的电脑主机4、指向装置的鼠标器6以及用来输入的键盘8。电脑主机4中可以执行某一具有图形界面的程序,并且在显示器2上显示出此一图形界面。图形界面上具有数个预先设计或是由使用者所设定的不显示触发区域以及对应的显示按键区。当使用者利用鼠标器6移动显示器2上的光标,进入任何触发区域内时,触发区域(或是对应的按键区)则会显示出高亮点(highlighting)效果的图形,当使用者进一步按下鼠标器6上的按钮时,便会触发此一触发区域所对应的程序。在本实施例中所欲达到的技术目的,即是能够快速地且有效地显示出触发区域的高亮点效果。
图2则表示在本实施例中,利用区域判断法来处理按键高亮点效果的方法流程图。在图2中的步骤S1和步骤S2为预备步骤,用以分别备置显示用的高亮点状态图形以及位置信息文件,步骤S3至步骤S6则为实际处理按键高亮点效果的程序处理。
在步骤S1中,是将分别对应于各触发区域的高亮点状态小图,利用图像处理软件(例如Adobe的PhotoShop)拼接成一个大的高亮点状态图形。每个高亮点状态小图是当荧幕上的光标进入对应的触发区域时,用来显示在显示器2上,藉以呈现高亮点效果的图形片段。在本实施例虽是将各高亮点状态小图拼接成一个大图,然而直接利用各高亮点小图来实施,亦可达到本发明的目的。不过在本实施例中之所以采用拼接大图的方式,主要优点在于能够节省读取众多小图的索引时间,并且减少存取I/O(Input/Output)的次数,此点特别在多媒体主题光盘(Title)所使用的存储装置光盘片(CD-ROM)中,改善的效果特别明显。
在步骤S2中,则是建立具有各触发区域和高亮点状态图形的中相关位置信息的位置信息文件。此位置信息文件则可以利用数据库(database)形式建立,或是利用一般的本文(text)文件形式建立。在本实施例中,则是采用较容易处理的本文文件来建立位置信息文件,因此可以利用任何一种ASCII本文编辑器(text editor)来编辑此一文件。图3系为本实施例中的位置信息文件30的格式示意图。如图所示,位置信息文件30是由数行文字列所构成。第一行文字列300是记录在此图形界面上所具有的触发区域个数n,以下各文字列301~30n则分别记录每个触发区域的相关位置记录信息。每组位置记录中包含以下三种信息:(1)对应触发区域在图形界面上的相关位置,是利用此区域范围的左上边界点(sLeft、sTop)以及宽高距离(sWidth、sHeight)来表示,做为当鼠标器6所操纵的光标位置移动时,判断是否进入此一触发区域的信息;
(2)对应高亮点状态小图在高亮点状态图形(大图)中的位置,是利用此高亮点状态小图的左上边界点(hLeft、hTop)以及宽高距离(hWidth、hHeight)来表示,做为裁剪高亮点状态小图时所需要的信息;
(3)小图贴在图形界面上时的显示位置,是利用图形界面上的左上点边界点(pLeft、pTop)来表示,做为当光标进入此一触发区域内时,贴上高亮点状态小图的位置。
在第3图中,每一行位置记录中的各数值参数,可以利用一分隔号(separator)加以区隔,例如空格(space)、分号(;)或其他可供使用的字元。
在完成图2所示的预备步骤S1和S2之后,便可以进行在实际执行时的处理。步骤S3和步骤S4是在开始处理程序的前的初始化载入操作,分别用以将上述的高亮点状态图形(大图)以及位置信息文件30载入到电脑主机4内的存储器中,藉以加快区域判断的处理速度。高亮点状态图形一般为图像阵列(bitmap)的格式,因此可以轻易地载入至预先规划好的存储器内。另外,载入位置信息文件30的详细步骤,则如第4图所示。
在第4图所示的步骤,首先,打开(open)位置信息文件30,藉以将读取文件指标(pointer)指向档案的开始部分(步骤S41)。开始之后,接着由第一行300中读入触发区域个数n,确定需要判断边界的触发区域总数(步骤S42)。在此,参数值n不仅代表示了触发区域的总数,同时也表示位置信息文件中的位置记录总行数。因此,利用参数值n,可以动态方式配置存储用的存储器,其存储器的维数为(n,10),其中的数值10表示每项位置记录的参数值个数(步骤S43)。接着,则建立一n次的执行循环(loop),用来依序读取文件内各行300~30n的数值参数,并写入到所配置的对应存储器地址中(步骤S44)。完成上述动作的后,表示文件已读取完毕,最后关闭位置信息文件30(步骤S45)。
在完成上述的起始载入步骤之后,便进入此一图形界面的操作程序中。在操作过程中,使用者可以利用鼠标器6来移动显示器2上的光标位置,此一动作则对应于MouseMove(鼠标器移动)事件,据以获知目前光标在图形界面上的位置。并且在判断过程中,会产生以下两个变量:
位置旗标变量FLAG:用以表示目前光标位置是在某一触发区域之中,或是在非触发区域的图形界面上,亦即,当FLAG=TRUE时,表示光标位置在非触发区域的图形界面上,当FLAG=FALSE时,表示光标位置在某一触发区域内;
区域编号变量BT_ID:用以当光标位于触发区域中时,表示其对应的触发区域编号。
图5则表示图2中步骤S5的详细步骤流程图,其为本发明中最重要的处理程序。首先,设定位置旗标变量FLAG=TRUE,亦即假设目前的光标位置是在非触发区域的图形界面上(步骤S51)。接着,根据使用者移动鼠标器6而对应的MouseMove事件,取得光标目前的位置信息(步骤S52)。此时,当位置旗标变量FLAG=FALSE并且光标的位置是在区域编号变量BT_ID所指的触发区域时(步骤S53),则不进行之后的判断而维持原来的状态,跳回步骤S52;否则,会清除先前所显示的高亮点状态小图(步骤S54),并且进行步骤S55的判断。在步骤S55中,则是依序对每一个图形界面上的触发区域,判断目前光标位置是否处于某一个触发区域之内,若是,则设定区域编号变量BT_ID为此一触发区域,而由高亮点状态图形(大图)中剪裁出相关的高亮点状态小图,贴到图形界面上的对应位置,再将位置旗标变量FLAG设为FALSE,表示目前光标位置在某一触发区域(步骤S56),跳回步骤S52继续执行;若否,则表示目前的光标位置不在任何触发区域之内,所以设定位置旗标变量FLAG=TRUE(步骤S57),跳回步骤S52中。在图5所示的步骤流程,则必须等到发生按下鼠标器6的按键之后,对应出Button_Down事件,才会进行图2所示的步骤S6,此一部分将在后详述。
以下则详细说明图5所示步骤S6的判断过程。一开关进入图形界面操作时,在本实施例中是假设目前的光标位置系置于非触发区域的图形界面上(FLAG=TRUE)。接着,根据MouseMove事件取得目前光标的位置。但是由于位置旗标变量FLAG设为FALSE并且开始时并无显示任何高亮点状态小图,所以会直接进入步骤S55进行判断。若光标位置仍未进入任何一个触发区域范围内时,则仍设定位置旗标变量FLAG=TRUE,回到步骤S52继续如上的处理。若是此时光标位置已经进入某一触发区域内,便可以进行步骤S56,显示出按键的高亮点效果,并且将区域编号变量BT_ID设为此一触发区域编号,而设定位置旗标变量FLAG为FALSE。
一旦目前光标位置进入了某一触发区域内时,在上触发区域便会显示出高亮点的效果。接着,根据光标的位置,可以分为三种后续处理的情况。第一种情况是光标位置仍维持在原来的触发区域的内,此时的处理是保持其高亮点效果的显示状态,因此由步骤S53跳回步骤S52。第二种情况则是光标位置移出了原来的触发区域,进入非触发区域的图形界面(光标位置不在区域编号变量BT_ID所指的触发区域内)。此时,便会在步骤S54清除先前显示的高亮点状态小图,恢复成一般的显示状态,并在步骤S57设定位置旗标变量FLAG为TRUE。第三种情况则是光标位移出了原来的触发区域,又立即进入了另一个触发区域的内(此时光标位置同样不在目前的区域编号变量BT_ID所指的触发区域之内)。同样的,在步骤S54中会清除先前显示的高亮点状态小图,并且在步骤S56中将区域编号变量BT_ID设为新的触发区域编号。藉此,在图形界面上的各触发区域,便可以在光标移入时呈现按键高亮点的效果。
如前所述,当按下鼠标器6的按键后产生对应的Button_Down事件,便会进行图2所示的步骤S6。此时,位置旗标变量FLAG即表示目前的光标位置是否在任一触发区域之内,同时,区域编号变量BT_ID则指出目前光标所在的触发区域。必须注意的是,由于在本发明中并未采用控制元件,因此对应于各触发区域的事件响应处理并不会自动被触发,因此必须由程序本身加以启动。图6即表示图2中步骤S6的详细步骤流程图。首先,判断是否发生Button_Down事件(步骤S61)。当发生Button_Down事件时,则判断目前的光标位置是否在某一触发区域之内,亦即位置旗标变量FLAG是否为FALSE(步骤S62),若不是,则表示光标的位置在图形界面的背景上,所以不必启动任何对应触发区域的处理程序;反之,则可以根据区域编号变量BT_ID所指示的触发区域,进行相关的程序处理(步骤S63),完成程序的触发动作。
因此,在本实施例中,便可以根据以上的方式来处理按键高亮点效果,不需要利用到传统的控制元件,可以降低所使用的存储器空间,进而加速界面载入时间。
使用本发明所述的区域判断方法,由于仅在内存中载入一张包含各触发区域的高亮点状态小图的大图,而实际在判断触发区域以及显示高亮点状态图时均未使用到控制元件,因此可以节省许多的内存资源。以现有技术所举的8个触发区域的例子来说,只需要使用到8个图标,而每个图标则仅需要申请到20个比特组,因此8个触发区域总共需要申请20×8=160比特组=0.16K的内存。必须注意的是,现有技术亦需要使用到这一部分的内存,因此,整体而言,本实施例中所使用的存储器空间,会远低于现有技术所采用的控制元件法。
另一方面,在进行界面切换时(例如由主要图形界面的首页转换到具有细部功能的次页中),因为不需要控制元件初始化所占用的时间,所以能够提升界面的载入速度。
为了比较本发明和现有技术的优劣,特举一实际范例加以说明。图7系为本发明实施例和现有技术比较时,所采用的图形界面首页的示意图,其为一动画索引界面。在图7所示的动画索引界面中,总共具有231个触发区域(如图7标示中的虚线框10),其中共有24个大标题以及207个小标题,另外,在图7中则并未图示全部的触发区域。若利用现有技术的控制元件法,则对于231个触发区域而言必须要有462或231个控制元件,所申请的内存空间就高达3.696M或者1.848M的比特组,这对于一般个人电脑而言所耗费的存储器实在过于庞大,因此现有技术控制元件法并不是同时建立所有的触发区域,而是207个小标题随着24个大标题的选择而分批被激活(activate)。亦即,当某一个大标题被激活之后,其所包含的的小标题才会启动,而在同时其他的小标题则变为失效。但是由于每个大标题所包含的触发区域数量以及位置均不相同,因此在使用者选择到某一个大标题时,便会将图7所示的其他大标题所占用的存储空间进行初始化,同增地,由小标题的图形界面回到大标题的图形界面亦必须进行初始化的程序。所以在界面进行切换时,必定会造成载入的速度下降。
相对地,当利用本发明的区域判断法来实施图7所示的图形界面时,则不需要占用如此庞大的内存存储器空间。所有标题的位置记录,包括大标题和小标题,都可以一次完全读入内存中。当大标题改变时,便可以计算对应小标题的区段而进行判断的检测。因此,不仅节省内存空间同时也提高了界面装载的速度,以较佳的方式解决了207个小标题分批激活的控制。
因此,对于图7所示的动画索引界面,分别利用传统的控制元件法以及本发明的判断法来实施,并在相同的系统环境中比较两者的间的性能差异。
测试环境:
硬件:Intel 486/DX2-66,16M RAM,四倍速光盘机
操作系统:Windows95
发展工具:MS Visual Basic V4.0
测试结果则如表一所示。
表一比较项目现有技术的控件法本发明的区域判断法控制元件数量至少231个(或462个)无界面载入时间3分45秒32秒存储器空间使用量2056K623K高亮点效果反应速度0.5秒0.5秒大标题更新速度2.8秒0.5秒
根据以上的测试结果可知,利用本发明的区域判断法并不需要使用到控制元件。在不减慢高亮点状态图形反应速度的前提下,可以使得界面载入时间比起已知的控制元件法快达7倍,所需的存储器空间减少3.3倍,大标题更新的速度快了将近6倍。因此,本发明所提出的区域判断法,确实能够达到本发明所要求的目的。
本发明虽以一较佳实施例揭示如上,但其并非用以限定本发明,任何熟悉本技术领域的技术人员,在不脱离本发明的精神和范围内,显然可作出各种的变动与修改,例如,鼠标器可以利用轨迹球、触控点、数字板或摇杆等等指向装置来取代,因此本发明的保护范围应由所附的权利要求书确定。