本申請涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種終端系統(tǒng)光標(biāo)事件的處理方法及裝置、鼠標(biāo)。
背景技術(shù):
終端系統(tǒng)光標(biāo)一般用于幫助用戶完成對終端的控制。圖1是根據(jù)現(xiàn)有技術(shù)中的一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,如圖1所示,該終端系統(tǒng)光標(biāo)為箭頭型鼠標(biāo)光標(biāo),用戶可以通過操控鼠標(biāo)上的物理按鍵,控制該鼠標(biāo)光標(biāo)在終端界面上完成一系列操作。例如,用戶可以按住鼠標(biāo)左鍵在屏幕上劃選文字或圖標(biāo)(文件夾A、文件B或文件夾C),也可以拖拽圖標(biāo)或滾動(dòng)條,其中,選擇框的大小會隨著鼠標(biāo)位置發(fā)生變化,圖標(biāo)或者滾動(dòng)條會隨著鼠標(biāo)移動(dòng)。
圖2是根據(jù)現(xiàn)有技術(shù)中的另一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,如圖2所示,鼠標(biāo)光標(biāo)的位置在終端界面上發(fā)生了變化,圖中實(shí)線所示的箭頭型鼠標(biāo)光標(biāo)為鼠標(biāo)光標(biāo)的當(dāng)前位置,圖中虛線所示的箭頭型鼠標(biāo)光標(biāo)為鼠標(biāo)光標(biāo)的歷史位置,圖中帶有箭頭的線段為該鼠標(biāo)光標(biāo)由歷史位置移動(dòng)到當(dāng)前位置的所經(jīng)路徑,以及圖中虛線框?yàn)楫?dāng)該鼠標(biāo)光標(biāo)經(jīng)由該路徑移動(dòng)后,在終端界面上顯示所選中的區(qū)域,即選擇框。
圖3是根據(jù)現(xiàn)有技術(shù)中的又一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,如圖3所示,鼠標(biāo)光標(biāo)在形成如圖2所示的選擇框后,位于該選擇框覆蓋區(qū)域之內(nèi)的圖標(biāo)(文件夾C)會被選定,文件夾C在被選定之后,其文件夾名顏色相較于文件夾A和文件夾B呈高亮狀態(tài)。進(jìn)而,用戶可以對選定的圖標(biāo)進(jìn)行打開、移動(dòng)、復(fù)制、刪除等一系列功能性操作。
但是,上述舉例也存在另一種情況,即當(dāng)用戶根據(jù)如圖2所示的路徑移動(dòng)鼠標(biāo)之后,終端界面上并不會立即出現(xiàn)該選擇框,如圖3所示的文件夾C也不會被立即選定。也就是說,選擇框在終端界面上的生成時(shí)間與鼠標(biāo)完成移動(dòng)的時(shí)間存在時(shí)延,該時(shí)延會影響到用戶對終端進(jìn)行控制的準(zhǔn)確性和效率。一般地,我們將該情況定義為鼠標(biāo)的依隨度或鼠標(biāo)的跟手性,該時(shí)延越大,鼠標(biāo)的依隨度或跟手性也就越差。需要說明的是,該情況也會在移動(dòng)設(shè)備上Touch輸入(觸摸式輸入)時(shí)出現(xiàn),即移動(dòng)設(shè)備上Touch輸入也會存在依隨度較差的問題。還需要說明的是,上述舉例僅對應(yīng)于終端系統(tǒng)光標(biāo) 的一種操作方式,終端移動(dòng)光標(biāo)可以具有多種操作方式,每種操作方式都可能存在依隨度問題,在此不做贅述。
目前,現(xiàn)有技術(shù)中在提高終端系統(tǒng)光標(biāo)的依隨度時(shí),通常會采用更換硬件的方式,但該方式存在成本較高、工期較長的缺陷。
針對上述問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供了一種終端系統(tǒng)光標(biāo)事件的處理方法及裝置、鼠標(biāo),以至少解決現(xiàn)有技術(shù)中采用更換硬件的方式而導(dǎo)致成本較高的技術(shù)問題。
根據(jù)本申請實(shí)施例的一個(gè)方面,提供了一種終端系統(tǒng)光標(biāo)事件的處理方法,包括:檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種終端系統(tǒng)光標(biāo)事件的處理裝置,包括:獲取單元,用于檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;判斷單元,用于根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;第一處理單元,用于若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;第二處理單元,用于若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種鼠標(biāo),該鼠標(biāo)用于上述的終端系統(tǒng)光標(biāo)事件的處理方法。
在本申請實(shí)施例中,采用檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光 標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像的方式,解決了現(xiàn)有技術(shù)中采用更換硬件的方式而導(dǎo)致成本較高的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1是根據(jù)現(xiàn)有技術(shù)中的一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖2是根據(jù)現(xiàn)有技術(shù)中的另一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖3是根據(jù)現(xiàn)有技術(shù)中的又一種終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖4是根據(jù)本申請實(shí)施例的一種終端系統(tǒng)光標(biāo)事件的處理方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖;
圖5是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的流程圖;
圖6是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖7是根據(jù)本申請實(shí)施例的另一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖8是根據(jù)本申請實(shí)施例的又一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖;
圖9是根據(jù)本申請實(shí)施例的另一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的流程圖;
圖10是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu)示意圖;
圖11是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu)示意圖;
圖12是根據(jù)本申請實(shí)施例的另一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu)示意圖;
圖13是根據(jù)本申請實(shí)施例的又一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu)示意圖;
圖14是根據(jù)本申請實(shí)施例的又一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu) 示意圖;
圖15是根據(jù)本申請實(shí)施例的又一種可選的終端系統(tǒng)光標(biāo)事件的處理裝置的結(jié)構(gòu)示意圖;
圖16是根據(jù)本申請實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
本申請中涉及到的名詞解釋如下:
終端光標(biāo)事件:發(fā)生在任何使用光標(biāo)進(jìn)行控制的終端上,該事件在本申請中具體指光標(biāo)的移動(dòng)事件。
光標(biāo)的圖像繪制:發(fā)生在應(yīng)用層,用于根據(jù)接收到的光標(biāo)的移動(dòng)事件繪制光標(biāo)在終端的顯示界面上的圖像。
時(shí)間戳:(timestamp),通常是一個(gè)字符序列,用于唯一的標(biāo)識某一刻的時(shí)間。本申請中光標(biāo)的移動(dòng)事件的時(shí)間戳可以在該移動(dòng)事件的屬性信息中獲取。
實(shí)施例1
根據(jù)本申請實(shí)施例,還提供了一種終端系統(tǒng)光標(biāo)事件的處理方法的實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請實(shí)施例一所提供的方法實(shí)施例可以在移動(dòng)終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖4是根據(jù)本申請實(shí)施例的一種終端系統(tǒng)光標(biāo)事件的處理方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖4所示,計(jì)算機(jī)終端40可以包括一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器402(處理器402可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲數(shù)據(jù)的存儲器404、以及用于通信功能的傳輸裝置406。本領(lǐng)域普通技術(shù)人員可以理解,圖4所示的結(jié)構(gòu)僅為示意,其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端40還可包括比圖4中所示更多或者更少的組件,或者具有與圖4所示不同的配置。
存儲器404可用于存儲應(yīng)用軟件的軟件程序以及模塊,如本申請實(shí)施例中的一種終端系統(tǒng)光標(biāo)事件的處理方法對應(yīng)的程序指令/模塊,處理器402通過運(yùn)行存儲在存儲器404內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的終端系統(tǒng)光標(biāo)事件的處理方法。存儲器404可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個(gè)或者多個(gè)磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器404可進(jìn)一步包括相對于處理器402遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端40。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
傳輸裝置406用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端40的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置406包括一個(gè)網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置406可以為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本申請?zhí)峁┝巳鐖D5所示的終端系統(tǒng)光標(biāo)事件的處理方法。圖5是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的流程圖。
如圖5所示,終端系統(tǒng)光標(biāo)事件的處理方法可以包括如下實(shí)施步驟:
步驟S51,檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件。
本申請上述步驟S51中,上述光標(biāo)可以為鼠標(biāo)光標(biāo),也可以為物理按鍵光標(biāo)或者手勢光標(biāo)。上述第一顯示位置和第二顯示位置可以為終端顯示界面上的任意位置,上述第一移動(dòng)事件和上述第二移動(dòng)事件可以為對該終端光標(biāo)進(jìn)行滾動(dòng)、滑動(dòng)、拖拽等。
步驟S53,根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖 像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制。
其中,第二移動(dòng)事件的屬性為可以包括第二移動(dòng)事件的時(shí)間戳或用于表示繪制完成第二移動(dòng)事件的圖像的完成信號。該第二移動(dòng)事件的時(shí)間戳可以為發(fā)送該第二移動(dòng)事件的時(shí)間戳或接收該第二移動(dòng)事件的時(shí)間戳。
步驟S55,若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件。
本申請上述步驟S55中,該第一移動(dòng)事件可以被理解為終端無法及時(shí)處理的事件。圖6是根據(jù)本申請實(shí)施例的一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,其中,該終端系統(tǒng)可以為Android系統(tǒng)(安卓系統(tǒng))或IOS系統(tǒng),在發(fā)生一次移動(dòng)事件到輸出一幀圖像,該終端系統(tǒng)實(shí)際上需要進(jìn)行非常復(fù)雜的處理過程。下面以安卓系統(tǒng)為例詳述該處理過程:
步驟A,通過底層驅(qū)動(dòng)(Driver)進(jìn)行移動(dòng)事件采樣(Input events sampling);
步驟B,通過架構(gòu)層(Framework)進(jìn)行移動(dòng)事件讀取和調(diào)度(Input events read and dispatch);
步驟C,通過應(yīng)用層(Application)進(jìn)行移動(dòng)事件處理(Input events handling);
步驟D,通過應(yīng)用層(Application)進(jìn)行繪制(Application rendering);
步驟E,通過架構(gòu)層(Framework)進(jìn)行合成(Compositing);
步驟F,通過底層驅(qū)動(dòng)(Driver)進(jìn)行顯示(Display)。
具體的,該終端系統(tǒng)的設(shè)備驅(qū)動(dòng)對鼠標(biāo)狀態(tài)進(jìn)行采樣,F(xiàn)ramework里的Event Reader以固定頻率讀取該采樣事件,再通過Event Dispatcher將鼠標(biāo)事件傳遞給應(yīng)用層。應(yīng)用層在接收到該鼠標(biāo)事件之后,繪制出新的輸出圖像,并將該輸出圖像費(fèi)交給Surface Flinger進(jìn)行合成得到合成后的圖像,以及最終將該合成后的圖像發(fā)送至Display顯示給用戶。
圖7是根據(jù)本申請實(shí)施例的另一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,該示意圖可用于體現(xiàn)第一事件的時(shí)間序列。具體的,Event Dispatcher周期性的將移動(dòng)事件(如鼠標(biāo)拖拽事件)傳遞給應(yīng)用層,當(dāng)應(yīng)用層的處理能力滿足工作量需求時(shí),輸出圖像會以非常小的延遲被Display顯示,而當(dāng)應(yīng)用層的處理能力不能滿足該工作量需求時(shí),輸出圖像的延遲將會明顯增加。如圖7所示,應(yīng)用層處理事件1并完成需要1個(gè)時(shí)間間隔,處理事件4并完成需要3個(gè)時(shí)間間隔,以及處理事件5并完成需要 5個(gè)時(shí)間間隔。以此類推,應(yīng)用層處理事件6及其后續(xù)事件將會花費(fèi)更長時(shí)間,即產(chǎn)生更大的延遲。進(jìn)而,結(jié)合圖6和圖7可知,搭載Android系統(tǒng)的終端在應(yīng)用層處理能力有限且工作負(fù)荷較大時(shí),會造成終端光標(biāo)的依隨度較差。而該終端自身并不能避免、緩解或有效控制這一問題,只能依靠提高該終端的軟件或硬件處理能力,例如使用更高的硬件平臺或者對軟件繪制算法進(jìn)行優(yōu)化。但上述兩種方法無一例外都需要增加成本、延長工期,導(dǎo)致解決終端光標(biāo)的依隨度問題的代價(jià)高昂。
圖8是根據(jù)本申請實(shí)施例的又一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的示意圖,該示意圖可用于體現(xiàn)本申請的處理方法的合理性和科學(xué)性。結(jié)合圖7和圖8,由于應(yīng)用層處理事件4并完成需要3個(gè)時(shí)間間隔,在處理事件4的過程中,事件5和事件6并不能及時(shí)得到處理,因此,可以選擇丟棄事件4和事件5,使得應(yīng)用層可以直接處理最新的事件7,從而將延遲從圖7中的5個(gè)時(shí)間間隔減少到圖8中的3個(gè)時(shí)間間隔,最終有效提高了終端光標(biāo)的依隨度。
步驟S57,若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
也就是說,若光標(biāo)在第二顯示位置的圖像繪制完成,則不會影響到對第一移動(dòng)事件的處理,因而,第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像也不會造成延遲,從而可以提高終端光標(biāo)的依隨度。
在本申請實(shí)施例中,采用檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像的方式,解決了現(xiàn)有技術(shù)中采用更換硬件的方式而導(dǎo)致成本較高的技術(shù)問題。
在上述實(shí)施例中提供的事件丟棄機(jī)制,在上一繪制事件完成的情況下,基于該當(dāng)前的光標(biāo)移動(dòng)事件繪制圖像,并在上一繪制事件未完成的情況下,將當(dāng)前的光標(biāo)移動(dòng)事件丟棄掉,而不是將當(dāng)前的光標(biāo)移動(dòng)事件等待上一事件的繪制,從而可以保證當(dāng)前時(shí)刻的后續(xù)時(shí)刻輸入的光標(biāo)移動(dòng)事件沒有延遲的繪制。
而且,在應(yīng)用中光標(biāo)移動(dòng)事件的輸入一般都是連續(xù)的,即便是中間有一幀或幾幀光標(biāo)移動(dòng)事件的圖像未繪制(一般都是毫秒ms級的,可能為幾十毫秒),用戶的視覺 根本就無法察覺,從用戶角度來講,通過上述的方案,用戶只有感到使用流暢。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,第二移動(dòng)事件的屬性包括:發(fā)生第二移動(dòng)事件的第一時(shí)間戳,其中,步驟S53根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像可以包括:
步驟S531,獲取發(fā)生第一移動(dòng)事件的第二時(shí)間戳。
在本申請上述步驟S531中,時(shí)間戳(timestamp),通常是一個(gè)字符序列,用于唯一的標(biāo)識某一刻的時(shí)間。對于Java、PHP(Hypertext Preprocessor,超文本預(yù)處理器)等不同的腳本語言,其獲取時(shí)間戳的方式也可能不同,在此不做贅述。為方便起見,時(shí)間戳還可以轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間。例如,發(fā)生第二移動(dòng)事件的第一時(shí)間戳為:1449558391,將該第一時(shí)間戳轉(zhuǎn)換為北京時(shí)間,其對應(yīng)的北京時(shí)間為:2015年12月08日15時(shí)06分31秒。再例如,發(fā)生第一移動(dòng)事件的第二時(shí)間戳為:1449558393,將該第二時(shí)間戳轉(zhuǎn)換為北京時(shí)間,其對應(yīng)的北京時(shí)間為:2015年12月08日15時(shí)06分33秒。
步驟S533,確定第一時(shí)間戳與第二時(shí)間戳的時(shí)間間隔。
在本申請上述步驟S533中,第一時(shí)間戳與第二時(shí)間戳的時(shí)間間隔可以為各自對應(yīng)的標(biāo)準(zhǔn)時(shí)間的時(shí)間間隔。例如,上述第一時(shí)間戳對應(yīng)的北京時(shí)間為2015年12月08日15時(shí)06分31秒,上述第二時(shí)間戳對應(yīng)的北京時(shí)間為2015年12月08日15時(shí)06分33,則可以確定第一時(shí)間戳與第二時(shí)間戳的時(shí)間間隔為2秒。
步驟S535,判斷時(shí)間間隔是否大于或等于預(yù)設(shè)繪制時(shí)間。
其中,終端系統(tǒng)可以執(zhí)行Poll函數(shù),并通過該P(yáng)oll函數(shù)中的Timeout設(shè)置預(yù)設(shè)繪制時(shí)間。例如,Timeout=200ms,表示該預(yù)設(shè)繪制時(shí)間為200ms。如圖7或圖8所示,事件1的預(yù)設(shè)繪制時(shí)間和事件2的預(yù)設(shè)繪制時(shí)間相等,而事件4的預(yù)設(shè)繪制時(shí)間明顯大于事件1或事件2。
步驟S537,若時(shí)間間隔大于或等于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成。
可選地,如圖8所示,在處理事件4的過程中,事件7與事件4的時(shí)間間隔等于處理事件4所需要的預(yù)設(shè)繪制時(shí)間,因此,在開始處理事件7時(shí),可以確定事件4已完成處理過程,即事件4中的光標(biāo)在第二顯示位置的圖像繪制完成。
步驟S539,若時(shí)間間隔小于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完成。
可選地,如圖8所示,在處理事件4的過程中,事件5與事件4的時(shí)間間隔等于處理事件4所需要的預(yù)設(shè)繪制時(shí)間,因此,在開始處理事件5時(shí),可以確定事件4仍處于正在處理的過程中,即事件4中的光標(biāo)在第二顯示位置的圖像未繪制完成。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,步驟S535,在判斷時(shí)間間隔是否大于或等于預(yù)設(shè)繪制時(shí)間之前,本方法還可以包括:
步驟S5351,計(jì)算繪制第二顯示位置的圖像的繪制時(shí)間。
其中,計(jì)算繪制第二顯示位置的圖像可以依靠終端系統(tǒng)內(nèi)置的圖形處理模塊和計(jì)算模塊實(shí)現(xiàn)。一般而言,圖像的繪制時(shí)間和第二顯示位置在屏幕上的坐標(biāo)有關(guān),也和光標(biāo)在第二顯示位置的圖像的復(fù)雜程度有關(guān)。
步驟S5353,將繪制時(shí)間作為預(yù)設(shè)繪制時(shí)間。
可選地,如圖7或圖8所示,每個(gè)移動(dòng)事件的繪制時(shí)間可能不同,例如,事件1的繪制時(shí)間和事件2的繪制時(shí)間相等,而事件4的繪制時(shí)間明顯大于事件1或事件2的繪制時(shí)間。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,第二移動(dòng)事件的屬性包括:用于表示繪制完成第二顯示位置的圖像的完成信號,其中,步驟S53根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像可以包括:
步驟S532,判斷是否接收到完成信號。
可選地,如圖8所示,終端系統(tǒng)對事件1、事件2、事件3和事件4和事件7依次進(jìn)行處理,在處理上述事件時(shí),終端系統(tǒng)處理事件7的前提是接收到事件4的完成信號,終端系統(tǒng)處理事件4的前提是接收到事件3的完成信號,終端系統(tǒng)處理事件3的前提是接收到事件2的完成信號,終端系統(tǒng)處理事件2的前提是接收到事件1的完成信號,也就是說,終端系統(tǒng)需要根據(jù)判斷是否接收到前一事件的完成信號,進(jìn)而處理后一事件。
步驟S534,若接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成。
可選地,如圖8所示,在終端系統(tǒng)處理事件4時(shí),依次會獲取到事件5、事件6、事件7等后續(xù)事件的處理請求,終端系統(tǒng)在獲取到事件7的處理請求時(shí),同時(shí)接收到事件4的完成信號,因此,可以判斷出事件4已繪制完成,即事件4的光標(biāo)在第二顯示位置的圖像繪制完成。
步驟S536,若未接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完 成。
可選地,如圖8所示,在終端系統(tǒng)處理事件4時(shí),依次會獲取到事件5、事件6、事件7等后續(xù)事件的處理請求,終端系統(tǒng)在獲取到事件5或事件6的處理請求時(shí),未接收到事件4的完成信號,因此,可以判斷出事件4繪制未完成,即事件4的光標(biāo)在第二顯示位置的圖像繪制未完成。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,在執(zhí)行步驟S51檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件之后,本處理方法還可以包括:
步驟S511,啟動(dòng)用于等待光標(biāo)的下一移動(dòng)事件的等待事件,并確定等待事件的等待時(shí)間段。
可選地,Android系統(tǒng)中的Input Reader可以通過將Timeout參數(shù)設(shè)置為無窮大,并在發(fā)生等待光標(biāo)的下一移動(dòng)事件的等待事件的時(shí)候,將該Timeout參數(shù)設(shè)置為該等待事件的等待時(shí)間段,例如,可以將該Timeout參數(shù)設(shè)置為Timeout=200ms,若在該時(shí)間段內(nèi)發(fā)生下一移動(dòng)事件,則使Input Reader返回初始狀態(tài),并將該第一移動(dòng)事件顯示或丟棄。
步驟S513,若在等待時(shí)間段內(nèi)未接收到下一移動(dòng)事件,則重發(fā)第一移動(dòng)事件,并基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
可選地,Android系統(tǒng)中的Input Reader可以通過將Timeout參數(shù)設(shè)置為無窮大,并在發(fā)生等待光標(biāo)的下一移動(dòng)事件的等待事件的時(shí)候,將該Timeout參數(shù)設(shè)置為該等待事件的等待時(shí)間段,例如,可以將該Timeout參數(shù)設(shè)置為Timeout=200ms,若在該時(shí)間段內(nèi)未發(fā)生下一移動(dòng)事件,則將Timeout參數(shù)設(shè)置再次設(shè)置為無窮大,然后以新的當(dāng)前時(shí)間重新發(fā)送該第一移動(dòng)事件。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,步驟S513,重發(fā)第一移動(dòng)事件可以包括:
步驟S5131,判斷第一移動(dòng)事件是否被丟棄;
步驟S5133,若判斷出第一移動(dòng)事件被丟棄,則重發(fā)第一移動(dòng)事件;
步驟S5135,若判斷出第一移動(dòng)事件未被丟棄,則重新啟動(dòng)等待事件。
在本申請上述步驟S5131至步驟S5135中,可以根據(jù)判斷第一移動(dòng)事件是否被丟棄的結(jié)果判斷是否重發(fā)第一移動(dòng)事件或重新啟動(dòng)等待事件。其中,可以通過終端系統(tǒng)執(zhí)行Poll函數(shù)判斷第一移動(dòng)事件是否被丟棄。
在本申請?zhí)峁┑囊环N可選實(shí)施例中,檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事 件包括下述之一:檢測到通過終端系統(tǒng)的顯示裝置接收的鼠標(biāo)按鍵按下、且鼠標(biāo)光標(biāo)移動(dòng)的事件;檢測到通過顯示裝置接收的手勢光標(biāo)移動(dòng)的事件;檢測到通過終端系統(tǒng)的鍵盤上一個(gè)或多個(gè)按鍵被按下以移動(dòng)顯示裝置上光標(biāo)的事件。
其中,若檢測到通過終端系統(tǒng)的顯示裝置接收的鼠標(biāo)按鍵按下、且鼠標(biāo)光標(biāo)移動(dòng)的事件,則可以確定該鼠標(biāo)為輸入設(shè)備,鼠標(biāo)可以通過有線或無線的方式與終端系統(tǒng)連接。用戶可以通過點(diǎn)擊或長按鼠標(biāo)的左鍵、右鍵、滑輪等,進(jìn)行光標(biāo)的移動(dòng)。
若檢測到通過顯示裝置接收的手勢光標(biāo)移動(dòng)的事件,則可以確定該顯示裝置亦具有輸入功能。例如,該顯示裝置為觸屏式手機(jī)、平板電腦、筆記本電腦等。用戶可以在手機(jī)屏幕上進(jìn)行單個(gè)手指或多個(gè)手指的點(diǎn)擊、滑動(dòng)等動(dòng)作,進(jìn)行光標(biāo)的移動(dòng)。
若檢測到通過終端系統(tǒng)的鍵盤上一個(gè)或多個(gè)按鍵被按下以移動(dòng)顯示裝置上光標(biāo)的事件,則可以確定該鍵盤為輸入設(shè)備,例如,用戶可以通過操作普通物理鍵盤(QWERTY鍵盤)上的“↑”、“↓”、“←”、“→”四個(gè)方向按鍵,或配合其他功能性按鍵,進(jìn)行光標(biāo)的移動(dòng)。
可選地,圖9是根據(jù)本申請實(shí)施例的另一種可選的終端系統(tǒng)光標(biāo)事件的處理方法的流程圖,如圖9所示,該方法可以包括如下步驟:
步驟S61,開始。即某個(gè)移動(dòng)事件被Input Reader獲取到,該光標(biāo)事件的時(shí)間戳為該光標(biāo)事件的發(fā)送時(shí)間戳。
步驟S62,執(zhí)行Poll函數(shù)。其中,Poll函數(shù)用于將當(dāng)前的文件指針掛到系統(tǒng)內(nèi)部定義的等待隊(duì)列中。Timeout作為Poll函數(shù)調(diào)用阻塞的時(shí)間,時(shí)間單位可以為毫秒。
步驟S63,重發(fā)上次事件,將該時(shí)間間隔設(shè)置為無窮大,即當(dāng)一次移動(dòng)事件(例如鼠標(biāo)的劃選或拖拽)結(jié)束之后,將Timeout取值為無窮大。在本實(shí)施例中,上次事件與步驟S61中的光標(biāo)事件具有時(shí)間上的先后順序。
其中,執(zhí)行步驟S63的目的在于建立一種事件補(bǔ)償機(jī)制用以判斷是否應(yīng)進(jìn)行事件補(bǔ)償,該事件補(bǔ)償旨在修正不應(yīng)該丟棄的移動(dòng)事件。例如,若系統(tǒng)內(nèi)的最大時(shí)間間隔為200ms,在該最大時(shí)間間隔之內(nèi)發(fā)生了新的移動(dòng)事件,Input Reader可以返回該新的光標(biāo)事件。也就是說,該新的移動(dòng)事件對應(yīng)的鼠標(biāo)動(dòng)作還未結(jié)束,該新的移動(dòng)事件將按照預(yù)設(shè)流程進(jìn)行后續(xù)處理,該后續(xù)處理為對該新的移動(dòng)事件的顯示或者丟棄。再例如,若系統(tǒng)內(nèi)的最大時(shí)間間隔為200ms,在該最大時(shí)間間隔之內(nèi)未發(fā)生新的移動(dòng)事件,即鼠標(biāo)動(dòng)作中斷并且用戶的手指仍持續(xù)按壓鼠標(biāo)左鍵。綜上所述,此時(shí)就極為必要通過上述事件補(bǔ)償機(jī)制判斷是否應(yīng)進(jìn)行事件補(bǔ)償。
步驟S64,根據(jù)當(dāng)前幀率計(jì)算丟棄時(shí)間間隔。其中,當(dāng)前幀率(Frame rate)是用于測量顯示幀數(shù)的量度,其單位可以為FPS(Frame per Second,每秒顯示幀數(shù))或Hz(赫茲),在本實(shí)施中,當(dāng)前幀率是對于上次事件而言。
步驟S65,判斷距離上次繪制的時(shí)間是否小于預(yù)設(shè)時(shí)間間隔。
若執(zhí)行完成步驟S65,且結(jié)果為是,則執(zhí)行步驟S66;若執(zhí)行完成步驟S65,且結(jié)果為是,則執(zhí)行步驟S67。
步驟S66,若確定該移動(dòng)事件對應(yīng)的圖像繪制未完成,則丟棄事件。
步驟S67,若確定該移動(dòng)事件對應(yīng)的圖像繪制已完成,則繪制事件。
步驟S68,結(jié)束上述處理過程并對該移動(dòng)事件進(jìn)行顯示。
可選地,圖9中的步驟S61至步驟S63可以理解為本申請實(shí)施例的方法中的事件補(bǔ)償部分,圖9中的步驟S64至步驟S68可以理解為本申請實(shí)施例的方法中的事件丟棄部分。需要說明的是,在步驟S61和步驟S62之間,該移動(dòng)事件對應(yīng)的用戶動(dòng)作可以為按壓鼠標(biāo)按鍵(Button down)而產(chǎn)生的指針移動(dòng)(Pointer move),在步驟S67和步驟S68之間,該移動(dòng)事件對應(yīng)的用戶動(dòng)作可以為放棄按壓鼠標(biāo)按鍵(Button up)。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本申請實(shí)施例,還提供了一種用于實(shí)施上述終端系統(tǒng)光標(biāo)事件的處理方法的終端系統(tǒng)光標(biāo)事件的處理裝置,如圖10所示,該裝置可以包括:獲取單元101,判斷單元103,第一處理單元105,第二處理單元107。
其中,獲取單元101,用于檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;判斷單元103,用于根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;第一處理單元105,用于若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;第二處理單元107,用于若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
此處需要說明的是,上述獲取單元101,判斷單元103,第一處理單元105,第二處理單元107對應(yīng)于實(shí)施例一中的步驟S51至步驟S57,五個(gè)單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
由上可知,本申請上述實(shí)施例二所提供的方案中,采用檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像的方式,通過本方案,實(shí)現(xiàn)了無需更換硬件便可提高終端光標(biāo)的依隨度,解決了現(xiàn)有技術(shù)中采用更換硬件的方式而導(dǎo)致成本較高的技術(shù)問題。
可選地,第二移動(dòng)事件的屬性包括:發(fā)生第二移動(dòng)事件的第一時(shí)間戳,如圖11所示判斷單元103可以包括:獲取子單元111,第一確定子單元113,第一判斷子單元115,第二確定子單元117,第三確定子單元119。
其中,獲取子單元111,用于獲取發(fā)生第一移動(dòng)事件的第二時(shí)間戳;第一確定子單元113,用于確定第一時(shí)間戳與第二時(shí)間戳的時(shí)間間隔;第一判斷子單元115,用于判斷時(shí)間間隔是否大于或等于預(yù)設(shè)繪制時(shí)間;第二確定子單元117,用于若時(shí)間間隔大于或等于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成;第三確定子單元119,用于若時(shí)間間隔小于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完成。
此處需要說明的是,上述獲取子單元111,第一確定子單元113,第一判斷子單元115,第二確定子單元117,第三確定子單元119對應(yīng)于實(shí)施例一中的步驟S531至步 驟S539,五個(gè)子單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述子單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
可選地,如圖12所示上述處理裝置還可以包括:計(jì)算單元121,第三處理單元123。
其中,計(jì)算單元121,用于計(jì)算繪制第二顯示位置的圖像的繪制時(shí)間;第三處理單元123,用于將繪制時(shí)間作為預(yù)設(shè)繪制時(shí)間。
此處需要說明的是,上述計(jì)算單元121,第三處理單元123對應(yīng)于實(shí)施例一中的步驟S5351至步驟S5353,兩個(gè)單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
可選地,第二移動(dòng)事件的屬性包括:用于表示繪制完成第二顯示位置的圖像的完成信號,如圖13所示判斷單元103可以包括:第二判斷子單元131,第四確定子單元133,第五確定子單元135。
其中,第二判斷子單元131,用于判斷是否接收到完成信號;第四確定子單元133,用于若接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成;第五確定子單元135,用于若未接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完成。
此處需要說明的是,上述第二判斷子單元131,第四確定子單元133,第五確定子單元135對應(yīng)于實(shí)施例一中的步驟S532至步驟S536,三個(gè)子單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述子單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
可選地,如圖14所示上述處理裝置還可以包括:啟動(dòng)單元141,重發(fā)單元143。
其中,啟動(dòng)單元141,用于啟動(dòng)用于等待光標(biāo)的下一移動(dòng)事件的等待事件,并確定等待事件的等待時(shí)間段;重發(fā)單元143,用于若在等待時(shí)間段內(nèi)未接收到下一移動(dòng)事件,則重發(fā)第一移動(dòng)事件,并基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
此處需要說明的是,上述啟動(dòng)單元141,重發(fā)單元143對應(yīng)于實(shí)施例一中的步驟S511至步驟S513,兩個(gè)單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
可選地,如圖15所示上述重發(fā)單元143可以包括:第三判斷子單元151,重發(fā)子單元153,重啟子單元155。
其中,第三判斷子單元151,用于判斷第一移動(dòng)事件是否被丟棄;重發(fā)子單元153,用于若判斷出第一移動(dòng)事件被丟棄,則重發(fā)第一移動(dòng)事件;重啟子單元155,用于若判斷出第一移動(dòng)事件未被丟棄,則重新啟動(dòng)等待事件。
此處需要說明的是,上述第三判斷子單元151,重發(fā)子單元153,重啟子單元155對應(yīng)于實(shí)施例一中的步驟S5131至步驟S5135,三個(gè)子單元與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述子單元作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端40中。
可選地,上述實(shí)施例二中檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件包括下述之一:檢測到通過終端系統(tǒng)的顯示裝置接收的鼠標(biāo)按鍵按下、且鼠標(biāo)光標(biāo)移動(dòng)的事件;檢測到通過顯示裝置接收的手勢光標(biāo)移動(dòng)的事件;檢測到通過終端系統(tǒng)的鍵盤上一個(gè)或多個(gè)按鍵被按下以移動(dòng)顯示裝置上光標(biāo)的事件。
實(shí)施例3
本申請的實(shí)施例可以提供一種鼠標(biāo),該鼠標(biāo)用于上述實(shí)施例中任意一種的終端系統(tǒng)光標(biāo)事件的處理方法,具體地,該鼠標(biāo)可以用于執(zhí)行終端系統(tǒng)光標(biāo)事件的處理方法的程序代碼,或者該鼠標(biāo)用于執(zhí)行終端系統(tǒng)光標(biāo)事件的處理方法的步驟。
在上述實(shí)施例中提供的事件丟棄機(jī)制,在上一繪制事件完成的情況下,基于該當(dāng)前的光標(biāo)移動(dòng)事件繪制圖像,并在上一繪制事件未完成的情況下,將當(dāng)前的光標(biāo)移動(dòng)事件丟棄掉,而不是將當(dāng)前的光標(biāo)移動(dòng)事件等待上一事件的繪制,從而可以保證當(dāng)前時(shí)刻的后續(xù)時(shí)刻輸入的光標(biāo)移動(dòng)事件沒有延遲的繪制。
而且,在應(yīng)用中光標(biāo)移動(dòng)事件的輸入一般都是連續(xù)的,即便是中間有一幀或幾幀光標(biāo)移動(dòng)事件的圖像未繪制(一般都是毫秒ms級的,可能為幾十毫秒),用戶的視覺根本就無法察覺,從用戶角度來講,通過上述的方案,用戶只有感到使用流暢。
此處需要說明的是,上述應(yīng)用與鼠標(biāo)的處理方法與上述實(shí)施例中對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述鼠標(biāo)作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端中。
實(shí)施例4
本申請的實(shí)施例可以提供一種計(jì)算機(jī)終端,該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端設(shè)備。可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端也可以替換為 移動(dòng)終端等終端設(shè)備。
可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端可以位于計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備。
在本實(shí)施例中,上述計(jì)算機(jī)終端可以執(zhí)行應(yīng)用程序的終端系統(tǒng)光標(biāo)事件的處理方法中以下步驟的程序代碼:檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
可選地,圖16是根據(jù)本申請實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。如圖16所示,該計(jì)算機(jī)終端A可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器161、存儲器163、以及傳輸裝置165。
其中,存儲器163可用于存儲軟件程序以及模塊,如本申請實(shí)施例中的終端系統(tǒng)光標(biāo)事件的處理方法和裝置對應(yīng)的程序指令/模塊,處理器161通過運(yùn)行存儲在存儲器163內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的終端系統(tǒng)光標(biāo)事件的處理方法。存儲器163可包括高速隨機(jī)存儲器,還可以包括非易失性存儲器,如一個(gè)或者多個(gè)磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器163可進(jìn)一步包括相對于處理器遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端A。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
上述的傳輸裝置165用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置165包括一個(gè)網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置165為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
其中,具體地,存儲器163用于存儲預(yù)設(shè)動(dòng)作條件和預(yù)設(shè)權(quán)限用戶的信息、以及應(yīng)用程序。
處理器161可以通過傳輸裝置165調(diào)用存儲器存儲的信息及應(yīng)用程序,以執(zhí)行下述步驟:檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性, 其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
可選的,上述處理器161還可以執(zhí)行如下步驟的程序代碼:第二移動(dòng)事件的屬性包括:發(fā)生第二移動(dòng)事件的第一時(shí)間戳,其中,根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像包括:獲取發(fā)生第一移動(dòng)事件的第二時(shí)間戳;確定第一時(shí)間戳與第二時(shí)間戳的時(shí)間間隔;判斷時(shí)間間隔是否大于或等于預(yù)設(shè)繪制時(shí)間;若時(shí)間間隔大于或等于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成;若時(shí)間間隔小于預(yù)設(shè)繪制時(shí)間,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完成。
可選的,上述處理器161還可以執(zhí)行如下步驟的程序代碼:在判斷時(shí)間間隔是否大于或等于預(yù)設(shè)繪制時(shí)間之前,處理方法還包括:計(jì)算繪制第二顯示位置的圖像的繪制時(shí)間;將繪制時(shí)間作為預(yù)設(shè)繪制時(shí)間。
可選的,上述處理器161還可以執(zhí)行如下步驟的程序代碼:第二移動(dòng)事件的屬性包括:用于表示繪制完成第二顯示位置的圖像的完成信號,其中,根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像包括:判斷是否接收到完成信號;若接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制完成;若未接收到完成信號,則判斷出光標(biāo)在第二顯示位置的圖像繪制未完成。
可選的,上述處理器161還可以執(zhí)行如下步驟的程序代碼:在檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件之后,方法還包括:啟動(dòng)用于等待光標(biāo)的下一移動(dòng)事件的等待事件,并確定等待事件的等待時(shí)間段;若在等待時(shí)間段內(nèi)未接收到下一移動(dòng)事件,則重發(fā)第一移動(dòng)事件,并基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像。
可選的,上述處理器161還可以執(zhí)行如下步驟的程序代碼:重發(fā)第一移動(dòng)事件包括:判斷第一移動(dòng)事件是否被丟棄;若判斷出第一移動(dòng)事件被丟棄,則重發(fā)第一移動(dòng)事件;若判斷出第一移動(dòng)事件未被丟棄,則重新啟動(dòng)等待事件。
可選地,上述處理器161還可以執(zhí)行如下步驟的程序代碼:檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件包括下述之一:檢測到通過終端系統(tǒng)的顯示裝置接收的鼠標(biāo)按鍵按下、且鼠標(biāo)光標(biāo)移動(dòng)的事件;檢測到通過顯示裝置接收的手勢光標(biāo)移動(dòng)的事件; 檢測到通過終端系統(tǒng)的鍵盤上一個(gè)或多個(gè)按鍵被按下以移動(dòng)顯示裝置上光標(biāo)的事件。
采用本申請實(shí)施例,提供了一種終端系統(tǒng)光標(biāo)事件的處理方法的方案。通過檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;并根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;進(jìn)而若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;以及若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的圖像,實(shí)現(xiàn)了無需更換硬件便可提高終端光標(biāo)的依隨度,解決了現(xiàn)有技術(shù)中采用更換硬件的方式而導(dǎo)致成本較高的技術(shù)問題。
本領(lǐng)域普通技術(shù)人員可以理解,圖16所示的結(jié)構(gòu)僅為示意,計(jì)算機(jī)終端也可以是智能手機(jī)(如Android手機(jī)、iOS手機(jī)等)、平板電腦、掌聲電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)、PAD等終端設(shè)備。圖16其并不對上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端A還可包括比圖16中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖16所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲于一計(jì)算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
實(shí)施例5
本申請的實(shí)施例還提供了一種存儲介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲介質(zhì)可以用于保存上述實(shí)施例一所提供的終端系統(tǒng)光標(biāo)事件的處理方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端中,或者位于移動(dòng)終端群中的任意一個(gè)移動(dòng)終端中。
可選地,在本實(shí)施例中,存儲介質(zhì)被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:檢測到光標(biāo)在第一顯示位置發(fā)生第一移動(dòng)事件時(shí),獲取第二移動(dòng)事件的屬性,其中,第二移動(dòng)事件為在發(fā)生第一移動(dòng)事件之前、在第二顯示位置發(fā)生的移動(dòng)事件;根據(jù)第二移動(dòng)事件的屬性判斷是否繪制完成光標(biāo)在第二顯示位置的圖像,其中,第二顯示位置的圖像基于第二移動(dòng)事件的觸發(fā)而繪制;若判斷出光標(biāo)在第二顯示位置的圖像繪制未完成,則丟棄在第一顯示位置發(fā)生的第一移動(dòng)事件;若判斷出光標(biāo)在第二顯示位置的圖像繪制完成,則基于第一顯示位置發(fā)生的第一移動(dòng)事件觸發(fā)繪制第一顯示位置的 圖像。
此處需要說明的是,上述計(jì)算機(jī)終端群中的任意一個(gè)可以與網(wǎng)站服務(wù)器和掃描器建立通信關(guān)系,掃描器可以掃描計(jì)算機(jī)終端上php執(zhí)行的web應(yīng)用程序的值命令。
上述本申請實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請的上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本申請的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。