欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

動畫幀的顯示方法、隱藏方法及裝置的制造方法

文檔序號:10624545閱讀:295來源:國知局
動畫幀的顯示方法、隱藏方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種動畫幀的顯示方法,包括步驟:在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。本發(fā)明還公開一種動畫幀的隱藏方法、裝置及動畫幀的顯示裝置。本發(fā)明降低了動畫幀的顯示操作過程的復雜度,且降低了CUP資源的占用,提高了動畫幀顯示的效率。
【專利說明】
動畫幀的顯示方法、隱藏方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及到顯示技術(shù)領(lǐng)域,特別涉及到動畫幀的顯示方法、隱藏方法及裝置?!颈尘凹夹g(shù)】
[0002]隨著電子計算機的硬件性能不斷提升,計算機軟件的體驗也在不斷提升,界面顯示效果越來越絢麗多彩,各類動畫效果更加流暢。其中,窗口動畫處理效率的高低,會直接影響用戶體驗。在Windows環(huán)境下,基于C++語言的界面庫,如MFC (Microsoft Foundat1n Classes)、WTL (Windows Template Library)等,都沒有提供一套完整動畫開發(fā)方案。因此, 相對于其他語言,如C#,基于C++語言的窗口動畫實現(xiàn)相對比較復雜。一般情況下,基于C++ 語言的窗口動畫是通過定時器逐幀實現(xiàn)窗口界面顯示的變化,實現(xiàn)流程如圖1所示。
[0003]在如圖1所示的實現(xiàn)流程中,由于采用了定時器,每間隔一段時間就會觸發(fā)一幀動畫幀。在動畫幀中,可進行動畫操作,如更新窗口的位置,并刷新顯示。設(shè)置定時器時,可以設(shè)置觸發(fā)的間隔時間,一般在10-50毫秒之間,該時間間隔并不是越小越好,如果時間間隔過小,同一時間內(nèi)就會有很多的動畫幀需要處理,如果動畫幀的處理效率不夠高,會占用更多的CPU資源,并導致動畫卡頓。因此,動畫幀的處理效率,直接影響著動畫效果。當前, Windows窗口的常見動畫有顯示和隱藏時的動畫,常見的實現(xiàn)方法有:
[0004]在每一幀動畫幀中,使用SetWindowPos函數(shù)或者MoveWindow函數(shù)更改窗口的大小,并刷新窗口界面,該方法在每一幀中都會刷新整個界面,導致動畫幀的顯示過程復雜, 效率差。
[0005]把窗口設(shè)置為完整顯不時的大小,并建立一個和窗口大小一樣的全透明的緩存, 僅把動畫過程中的窗口顯示區(qū)域繪制到緩存中,然后通過UpdateLayeredWindow函數(shù)把整個緩存一次性顯示到窗口中。此時,在每一幀動畫幀中,只顯示了動畫過程中需要顯示的區(qū)域。雖然窗口的實際大小保持不變,但窗口的顯示大小是在動態(tài)變化。該方法在每一幀動畫幀中,都需要調(diào)用UpdateLayeredWindow函數(shù),如果窗口界面較大時,會占用較多CPU資源。
[0006]綜上,現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU 資源,導致動畫幀顯示效率差。
【發(fā)明內(nèi)容】

[0007]本發(fā)明實施例提供一種動畫幀的顯示方法、隱藏方法及裝置,旨在解決現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。
[0008]為實現(xiàn)上述目的,本發(fā)明實施例提出一種動畫幀的顯示方法,包括步驟:
[0009]在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0010]計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;[〇〇11]在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0012]為了實現(xiàn)上述目的,本發(fā)明實施例還進一步提出一種動畫幀的隱藏方法,包括步驟:
[0013]在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域;
[0014]計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;
[0015]刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0016]為了實現(xiàn)上述目的,本發(fā)明實施例還進一步提出一種動畫幀的顯示裝置,包括:
[0017]第一獲取模塊,用于在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0018]第一計算模塊,用于計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;
[0019]第一顯示模塊,用于在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0020]為了實現(xiàn)上述目的,本發(fā)明實施例還進一步提出一種動畫幀的隱藏裝置,包括:
[0021]第二獲取模塊,用于在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域;
[0022]第二計算模塊,用于計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;
[0023]第二刪除模塊,用于刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0024]本發(fā)明通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀。有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率?!靖綀D說明】
[0025]圖1為現(xiàn)有的動畫幀的顯示一實施例的流程示意圖;
[0026]圖2為本發(fā)明實施例動畫幀的顯示裝置所涉及的硬件架構(gòu)示意圖;
[0027]圖3為本發(fā)明動畫幀的顯示方法的第一實施例的流程示意圖;
[0028]圖4為本發(fā)明獲取上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域一實施例的流程示意圖;
[0029] 圖5為本發(fā)明動畫幀的顯示方法的第二實施例的流程示意圖;[〇〇3〇] 圖6為本發(fā)明動畫幀的隱藏方法的第一實施例的流程示意圖;
[0031]圖7為本發(fā)明動畫幀的隱藏方法的第二實施例的流程示意圖;
[0032]圖8為本發(fā)明獲取上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域又一實施例的流程示意圖;
[0033]圖9為本發(fā)明動畫幀的顯示裝置的第一實施例的功能模塊示意圖;
[0034]圖10為圖9中第一獲取模塊一實施例的細化功能模塊示意圖;
[0035]圖11為本發(fā)明動畫幀的顯示裝置的第二實施例的功能模塊示意圖;
[0036]圖12為本發(fā)明動畫幀的隱藏裝置的第一實施例的功能模塊示意圖;
[0037]圖13為本發(fā)明動畫幀的隱藏裝置的第二實施例的功能模塊示意圖。
[0038]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明?!揪唧w實施方式】
[0039]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0040]本發(fā)明實施例的主要解決方案是:在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容, 以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。通過在有動畫幀需要顯示時, 確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀。有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度, 且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0041]由于現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差。
[0042]本發(fā)明實施例架構(gòu)一動畫幀的顯示裝置,該動畫幀的顯示裝置通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0043]其中,本實施例動畫幀的顯示裝置可以承載于PC端,也可以承載于手機、平板電腦等可以使用動畫頁面等網(wǎng)絡(luò)應用的電子終端。該動畫幀的顯示裝置所涉及的硬件架構(gòu)可以如圖2所示。
[0044]圖2示出了本發(fā)明實施例動畫幀的顯示裝置所涉及的硬件架構(gòu)。如圖2所示,所述動畫幀的顯示裝置所涉及的硬件包括:處理器301,例如CPU,網(wǎng)絡(luò)接口 304,用戶接口 303, 存儲器305,通信總線302。其中,通信總線302用于實現(xiàn)該信息推送平臺中各組成部件之間的連接通信。用戶接口 303可以包括顯示屏(Display)、鍵盤(Keyboard)、鼠標等組件, 用于接收用戶輸入的信息,并將接收的信息發(fā)送至處理器305進行處理。顯示屏可以為IXD 顯示屏、LED顯示屏,也可以為觸摸屏,用于顯示動畫幀的顯示裝置需要顯示的數(shù)據(jù),例如顯示窗口內(nèi)容、動畫幀的顯示等操作界面。可選用戶接口 303還可以包括標準的有線接口、無線接口。網(wǎng)絡(luò)接口 304可選的可以包括標準的有線接口、無線接口(如W1-FI接口)。存儲器305可以是高速RAM存儲器,也可以是穩(wěn)定的存儲器(non-volatile memory),例如磁盤存儲器。存儲器305可選的還可以是獨立于前述處理器301的存儲裝置。如圖1所示,作為一種計算機存儲介質(zhì)的存儲器305中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及動畫幀的顯示程序。
[0045]在圖2所示的動畫幀的顯示裝置所涉及的硬件中,網(wǎng)絡(luò)接口 304主要用于連接應用平臺,與應用平臺進行數(shù)據(jù)通信;用戶接口 303主要用于連接客戶端,與客戶端進行數(shù)據(jù)通信,接收客戶端輸入的信息和指令;而處理器301可以用于調(diào)用存儲器305中存儲的動畫幀的顯示程序,并執(zhí)行以下操作:
[0046]在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0047]計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;
[0048]在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0049]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的動畫幀的顯示程序可以執(zhí)行以下操作:
[0050]判斷當前窗口是否存在已顯示的動畫幀;[0051 ]若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0052]若當前窗口不存在已顯示的動畫幀,則在所述第一顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0053]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的動畫幀的顯示程序可以執(zhí)行以下操作:
[0054]在動畫幀顯示之前,將當前窗口設(shè)置為目標大小,并顯示設(shè)置后的窗口;
[0055]通過純色的C0L0RKEY畫刷填充所顯示的窗口。
[0056]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的動畫幀的顯示程序可以執(zhí)行以下操作:
[0057]在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第四顯示區(qū)域;
[0058]計算得到所述第三顯示區(qū)域相對所述第四顯示區(qū)域的減量區(qū)域;
[0059]刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0060]本實施例根據(jù)上述方案,通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0061]基于上述硬件架構(gòu),提出本發(fā)明動畫幀的顯示方法實施例。
[0062]如圖3所示,提出本發(fā)明一種動畫幀的顯示方法的第一實施例,所述動畫幀的顯示方法包括:
[0063]步驟S10,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0064]動畫由每一幀幀的動畫幀組成,通過一幀幀動畫幀的變化顯示來達到顯示內(nèi)容動態(tài)變化的效果。在動畫開始之前,先把窗口設(shè)置為目標大小,所述目標大小為動畫幀所需的大小(面積),并顯示所述設(shè)置后的窗口,通過純色的C0L0RKEY畫刷填充所顯示的窗口,即將所顯示的窗口設(shè)置為透明。具體的,SetLayeredWindowAttributes函數(shù)可以為Windows 窗口設(shè)置穿透色C0L0RKEY,其中,C0L0RKEY—般設(shè)置圖片、設(shè)計中不常用的顏色,比如設(shè)置0)11?1^¥為洋紅色1?8(255,(),255)。一旦為窗口設(shè)置了0)11)^^¥,如果使用顏色值為 C0L0RKEY的畫筆或畫刷對窗口進行繪制,所繪制區(qū)域會變成完全透明的;如果把圖片繪制到窗口中,只要圖片中的像素點的顏色值跟C0L0RKEY —樣的話,該像素點就會變成完全透明。在動畫幀的顯示過程中,均需要通過SetLayerdeWindowAttributes函數(shù)為窗口設(shè)置 C0L0RKEY〇
[0065]在顯示所述設(shè)置后的窗口后,初始化并開啟定時器,定時器觸發(fā)時,表示發(fā)出動畫幀的顯示指令,接收動畫幀的顯示指令,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域。所述定時器的定時間隔根據(jù)需要及 /或系統(tǒng)性能設(shè)置(例如CPU處理性能),可以是30ms或50ms等。
[0066]具體的,參考圖4,所述獲取上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域的過程包括:
[0067]步驟S11,判斷當前窗口是否存在已顯示的動畫幀;
[0068]在接收到動畫幀的顯示指令后,判斷當前窗口是否存在已顯示的動畫幀,即判斷是否存在所述待顯示動畫幀的上一幀動畫幀。若是,則執(zhí)行步驟S12,若否,則執(zhí)行步驟 S13〇
[0069]步驟S12,獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0070]步驟S13,在所述第一顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。[0071 ]若當前窗口存在已顯示的動畫幀,則判斷當前窗口存在所述待顯示動畫幀的上一幀動畫幀,獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域; 若當前窗口不存在已顯示的動畫幀,則判斷所述待顯示動畫幀為第一幀畫面,在所述第一顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示操作。
[0072]步驟S20,計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;
[0073]根據(jù)運動曲線計算出所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,在此不再贅述。
[0074]步驟S30,在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0075]確定所述顯示指令的顯示內(nèi)容,將所述顯示內(nèi)容繪制在所述增量區(qū)域。隨著顯示的動畫幀的增加,所顯示的窗口的顯示區(qū)域逐漸增大,在窗口整個顯示區(qū)域完全顯示之后, 整個動畫幀的顯示過程完成,關(guān)閉定時器。
[0076]本實施例通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0077]進一步地,基于上述動畫幀的顯示方法的第一實施例,提出本發(fā)明動畫幀的顯示方法的第二實施例。如圖5所示,所述步驟S30之后,還可以包括:
[0078]步驟S40,在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第四顯示區(qū)域;
[0079]接收動畫幀的隱藏指令,通過初始化定時器觸發(fā),在定時器觸發(fā)時,在預設(shè)時間 (20ms或30ms等)到達時,表示發(fā)出動畫幀的隱藏指令,這里的定時器觸發(fā)過程與上述顯示方式過程類似,但觸發(fā)所開啟的功能不同,一個為顯示觸發(fā),一個為隱藏觸發(fā)。在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域。判斷所述顯示指令對應的已顯示動畫幀是否為當前窗口顯示的唯一幀動畫幀,若是,則直接刪除所述第三顯示區(qū)域的顯示內(nèi)容;若否,則獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第四顯示區(qū)域。
[0080]步驟S50,計算得到所述第三顯示區(qū)域相對所述第四顯示區(qū)域的減量區(qū)域;
[0081]根據(jù)運動曲線計算出所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,與上述計算增量區(qū)域的過程類似,在此不再贅述。
[0082]步驟S60,刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0083]刪除所述減量區(qū)域中的顯示內(nèi)容的過程可以包括:通過純色的C0L0RKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減量區(qū)域的顯示內(nèi)容刪除。 通過將所述減量區(qū)域設(shè)置為透明,以將所述減量區(qū)域的顯示內(nèi)容刪除。隨著隱藏的動畫幀的幀數(shù)的增加,窗口的顯示區(qū)域逐漸減小,即顯示內(nèi)容占的區(qū)域逐漸減小,當窗口顯示區(qū)域為0時,即窗口不存在動畫幀的顯示內(nèi)容時,動畫操作完成,關(guān)閉窗口,并關(guān)閉定時器。
[0084]本實施例通過在有動畫幀需要隱藏時,確定需要隱藏的動畫幀與上一幀動畫幀的顯示區(qū)域的減量區(qū)域,刪除所述減量區(qū)域中的顯示內(nèi)容,有效避免現(xiàn)有的動畫幀的隱藏方式中動畫幀的隱藏操作過程復雜,且占用較多CPU資源,導致動畫幀隱藏效率差的問題。降低了動畫幀的隱藏操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀隱藏的效率。
[0085]進一步地,基于上述動畫幀的顯示方法的實施例,提出本發(fā)明動畫幀的隱藏方法的第一實施例。如圖6所示,所述動畫幀的隱藏方法還可以包括:
[0086]步驟S100,在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域;
[0087]接收動畫幀的隱藏指令,通過初始化定時器觸發(fā),在定時器觸發(fā)時,在預設(shè)時間 (20ms或30ms等)到達時,表示發(fā)出動畫幀的隱藏指令,這里的定時器觸發(fā)過程與上述顯示方式過程類似,但觸發(fā)所開啟的功能不同,一個為顯示觸發(fā),一個為隱藏觸發(fā)。在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域。判斷所述顯示指令對應的已顯示動畫幀是否為當前窗口顯示的唯一幀動畫幀,若是,則直接刪除所述第五顯示區(qū)域的顯示內(nèi)容;若否,則獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域。
[0088]步驟S200,計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;
[0089]根據(jù)運動曲線計算出所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,與上述計算增量區(qū)域的過程類似,在此不再贅述。
[0090]步驟S300,刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0091]刪除所述減量區(qū)域中的顯示內(nèi)容的過程可以包括:通過純色的C0L0RKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減量區(qū)域的顯示內(nèi)容刪除。 通過將所述減量區(qū)域設(shè)置為透明,以將所述減量區(qū)域的顯示內(nèi)容刪除。隨著隱藏的動畫幀的幀數(shù)的增加,窗口的顯示區(qū)域逐漸減小,即顯示內(nèi)容占的區(qū)域逐漸減小,當窗口顯示區(qū)域為0時,即窗口不存在動畫幀的顯示內(nèi)容時,動畫操作完成,關(guān)閉窗口,并關(guān)閉定時器。
[0092]本實施例通過在有動畫幀需要隱藏時,確定需要隱藏的動畫幀與上一幀動畫幀的顯示區(qū)域的減量區(qū)域,刪除所述減量區(qū)域中的顯示內(nèi)容,有效避免現(xiàn)有的動畫幀的隱藏方式中動畫幀的隱藏操作過程復雜,且占用較多CPU資源,導致動畫幀隱藏效率差的問題。降低了動畫幀的隱藏操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀隱藏的效率。
[0093]進一步地,基于上述動畫幀的顯示隱藏方法的第七實施例,提出本發(fā)明動畫幀的隱藏方法的第八實施例。如圖7所示,所述步驟S300之后,所述動畫幀的隱藏方法還可以包括:
[0094]步驟S400,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域;
[0095]動畫由每一幀幀的動畫幀組成,通過一幀幀動畫幀的變化顯示來達到顯示內(nèi)容動態(tài)變化的效果。在動畫開始之前,先把窗口設(shè)置為目標大小,所述目標大小為動畫幀所需的大小(面積),并顯示所述設(shè)置后的窗口,通過純色的C0L0RKEY畫刷填充所顯示的窗口,即將所顯示的窗口設(shè)置為透明。具體的,SetLayeredWindowAttributes函數(shù)可以為Windows 窗口設(shè)置穿透色C0L0RKEY,其中,C0L0RKEY—般設(shè)置圖片、設(shè)計中不常用的顏色,比如設(shè)置0)11?1^¥為洋紅色1?8(255,(),255)。一旦為窗口設(shè)置了0)11)^^¥,如果使用顏色值為 COLORKEY的畫筆或畫刷對窗口進行繪制,所繪制區(qū)域會變成完全透明的;如果把圖片繪制到窗口中,只要圖片中的像素點的顏色值跟C0L0RKEY —樣的話,該像素點就會變成完全透明。在動畫幀的顯示過程中,均需要通過SetLayerdeWindowAttributes函數(shù)為窗口設(shè)置 COLORKEY〇
[0096]在顯示所述設(shè)置后的窗口后,初始化并開啟定時器,定時器觸發(fā)時,表示發(fā)出動畫幀的顯示指令,接收動畫幀的顯示指令,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域。所述定時器的定時間隔根據(jù)需要及 /或系統(tǒng)性能設(shè)置(例如CPU處理性能),可以是30ms或50ms等。
[0097]具體的,參考圖8,所述獲取上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域的過程包括:
[0098]步驟S410,判斷當前窗口是否存在已顯示的動畫幀;
[0099]在接收到動畫幀的顯示指令后,判斷當前窗口是否存在已顯示的動畫幀,即判斷是否存在所述待顯示動畫幀的上一幀動畫幀。若是,則執(zhí)行步驟S411,若否,則執(zhí)行步驟 S412〇
[0100]步驟S411,若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域;
[0101]步驟S412,在所述第七顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0102]若當前窗口存在已顯示的動畫幀,則判斷當前窗口存在所述待顯示動畫幀的上一幀動畫幀,獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域; 若當前窗口不存在已顯示的動畫幀,則判斷所述待顯示動畫幀為第七幀畫面,在所述第七顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示操作。
[0103]步驟S500,計算得到所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量區(qū)域;
[0104]根據(jù)運動曲線計算出所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,在此不再贅述。
[0105]步驟S600,在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0106]確定所述顯示指令的顯示內(nèi)容,將所述顯示內(nèi)容繪制在所述增量區(qū)域。隨著顯示的動畫幀的增加,所顯示的窗口的顯示區(qū)域逐漸增大,在窗口整個顯示區(qū)域完全顯示之后, 整個動畫幀的顯示過程完成,關(guān)閉定時器。
[0107]本實施例通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0108]對應地,提出本發(fā)明動畫幀的顯示裝置的第一實施例。參考圖9,所述動畫幀的顯示裝置包括第一獲取模塊10、設(shè)置模塊20、第一顯示模塊30、填充模塊40及第一計算模塊 50 〇
[0109]所述第一獲取模塊10,用于在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0110]動畫由每一幀幀的動畫幀組成,通過一幀幀動畫幀的變化顯示來達到顯示內(nèi)容動態(tài)變化的效果。
[0111]設(shè)置模塊20,用于在動畫開始之前,先把窗口設(shè)置為目標大小,所述目標大小為動畫幀所需的大小(面積);
[0112]第一顯示模塊30,用于顯示所述設(shè)置后的窗口;
[0113]填充模塊40,用于通過純色的C0L0RKEY畫刷填充所顯示的窗口,即將所顯示的窗口設(shè)置為透明。具體的,SetLayeredWindowAttributes函數(shù)可以為Windows窗口設(shè)置穿透色C0L0RKEY,其中,C0L0RKEY —般設(shè)置圖片、設(shè)計中不常用的顏色,比如設(shè)置C0L0RKEY為洋紅色RGB(255,0,255)。一旦為窗口設(shè)置了 C0L0RKEY,如果使用顏色值為C0L0RKEY的畫筆或畫刷對窗口進行繪制,所繪制區(qū)域會變成完全透明的;如果把圖片繪制到窗口中,只要圖片中的像素點的顏色值跟C0L0RKEY —樣的話,該像素點就會變成完全透明。在動畫幀的顯示過程中,均需要通過SetLayerdeWindowAttributes函數(shù)為窗口設(shè)置C0L0RKEY。
[0114]在顯示所述設(shè)置后的窗口后,初始化并開啟定時器,定時器觸發(fā)時,表示發(fā)出動畫幀的顯示指令,接收動畫幀的顯示指令,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域。所述定時器的定時間隔根據(jù)需要及 /或系統(tǒng)性能設(shè)置(例如CPU處理性能),可以是30ms或50ms等。
[0115]具體的,參考圖10,所述第一獲取模塊10包括:判斷單元11和獲取單元12,
[0116]所述判斷單元11,用于判斷當前窗口是否存在已顯示的動畫幀;
[0117]在接收到動畫幀的顯示指令后,判斷當前窗口是否存在已顯示的動畫幀,即判斷是否存在所述待顯示動畫幀的上一幀動畫幀。
[0118]所述獲取單元12,用于若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;
[0119]所述第一顯示模塊30,用于若當前窗口不存在已顯示的動畫幀,則在所述第一顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0120]若當前窗口存在已顯示的動畫幀,則判斷當前窗口存在所述待顯示動畫幀的上一幀動畫幀,獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域; 若當前窗口不存在已顯示的動畫幀,則判斷所述待顯示動畫幀為第一幀畫面,在所述第一顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示操作。
[0121]所述第一計算模塊50,用于計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;
[0122]根據(jù)運動曲線計算出所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,在此不再贅述。
[0123] 所述第一顯示模塊30,還用于在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0124] 確定所述顯示指令的顯示內(nèi)容,將所述顯示內(nèi)容繪制在所述增量區(qū)域。隨著顯示的動畫幀的增加,所顯示的窗口的顯示區(qū)域逐漸增大,在窗口整個顯示區(qū)域完全顯示之后, 整個動畫幀的顯示過程完成,關(guān)閉定時器。
[0125]本實施例通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0126]參考圖11,提出本發(fā)明動畫幀的顯示裝置的第二實施例。所述動畫幀的顯示裝置還包括第一刪除模塊60,
[0127]所述獲取單元12,還用于在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第四顯示區(qū)域;
[0128] 接收動畫幀的隱藏指令,通過初始化定時器觸發(fā),在定時器觸發(fā)時,在預設(shè)時間 (20ms或30ms等)到達時,表示發(fā)出動畫幀的隱藏指令,這里的定時器觸發(fā)過程與上述顯示方式過程類似,但觸發(fā)所開啟的功能不同,一個為顯示觸發(fā),一個為隱藏觸發(fā)。在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域。判斷所述顯示指令對應的已顯示動畫幀是否為當前窗口顯示的唯一幀動畫幀,若是,則直接刪除所述第三顯示區(qū)域的顯示內(nèi)容;若否,則獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第四顯示區(qū)域。
[0129] 所述第一計算模塊50,還用于計算得到所述第三顯示區(qū)域相對所述第四顯示區(qū)域的減量區(qū)域;
[0130] 根據(jù)運動曲線計算出所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,與上述計算增量區(qū)域的過程類似,在此不再贅述。
[0131] 所述第一刪除模塊60,還用于刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0132] 第一刪除模塊60通過純色的C0L0RKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減量區(qū)域的顯示內(nèi)容刪除。通過將所述減量區(qū)域設(shè)置為透明, 以將所述減量區(qū)域的顯示內(nèi)容刪除。隨著隱藏的動畫幀的幀數(shù)的增加,窗口的顯示區(qū)域逐漸減小,即顯示內(nèi)容占的區(qū)域逐漸減小,當窗口顯示區(qū)域為0時,即窗口不存在動畫幀的顯示內(nèi)容時,動畫操作完成,關(guān)閉窗口,并關(guān)閉定時器。
[0133]本實施例通過在有動畫幀需要隱藏時,確定需要隱藏的動畫幀與上一幀動畫幀的顯示區(qū)域的減量區(qū)域,刪除所述減量區(qū)域中的顯示內(nèi)容,有效避免現(xiàn)有的動畫幀的隱藏方式中動畫幀的隱藏操作過程復雜,且占用較多CPU資源,導致動畫幀隱藏效率差的問題。降低了動畫幀的隱藏操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀隱藏的效率。
[0134]進一步地,基于上述動畫幀的顯示顯示裝置的實施例,提出本發(fā)明動畫幀的隱藏裝置的第七實施例。如圖12所示,所述動畫幀的隱藏裝置包括:第二獲取模塊100、第二計算模塊200、第二刪除模塊300、判斷模塊400和處理模塊500,
[0135]所述第二獲取模塊100,用于在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域;
[0136]接收動畫幀的隱藏指令,通過初始化定時器觸發(fā),在定時器觸發(fā)時,在預設(shè)時間 (20ms或30ms等)到達時,表示發(fā)出動畫幀的隱藏指令,這里的定時器觸發(fā)過程與上述顯示方式過程類似,但觸發(fā)所開啟的功能不同,一個為顯示觸發(fā),一個為隱藏觸發(fā)。在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域。判斷所述顯示指令對應的已顯示動畫幀是否為當前窗口顯示的唯一幀動畫幀,若是,則直接刪除所述第五顯示區(qū)域的顯示內(nèi)容;若否,則獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第六顯示區(qū)域。
[0137]第二計算模塊200,用于計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;
[0138]根據(jù)運動曲線計算出所述第七顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,與上述計算增量區(qū)域的過程類似,在此不再贅述。
[0139]所述第二刪除模塊300,用于刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。
[0140]第二刪除模塊300通過純色的C0L0RKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減量區(qū)域的顯示內(nèi)容刪除。通過將所述減量區(qū)域設(shè)置為透明, 以將所述減量區(qū)域的顯示內(nèi)容刪除。
[0141]所述判斷模塊400,用于判斷模塊,用于判斷當前窗口是否存在顯示區(qū)域;還用于若當前窗口不存在顯示區(qū)域,則判斷動畫幀的隱藏操作完成;
[0142]所述處理模塊500,用于關(guān)閉窗口。
[0143]隨著隱藏的動畫幀的幀數(shù)的增加,窗口的顯示區(qū)域逐漸減小,即顯示內(nèi)容占的區(qū)域逐漸減小;當窗口顯示區(qū)域為〇時,即窗口不存在動畫幀的顯示內(nèi)容時,動畫操作完成, 關(guān)閉窗口,并關(guān)閉定時器。[〇144]本實施例通過在有動畫幀需要隱藏時,確定需要隱藏的動畫幀與上一幀動畫幀的顯示區(qū)域的減量區(qū)域,刪除所述減量區(qū)域中的顯示內(nèi)容,有效避免現(xiàn)有的動畫幀的隱藏方式中動畫幀的隱藏操作過程復雜,且占用較多CPU資源,導致動畫幀隱藏效率差的問題。降低了動畫幀的隱藏操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀隱藏的效率。
[0145]進一步地,參考圖13,提出本發(fā)明動畫幀的隱藏裝置的第二實施例。所述動畫幀的隱藏裝置還包括:第二顯示模塊600,
[0146]所述獲取模塊100,還用于在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域;
[0147]動畫由每一幀幀的動畫幀組成,通過一幀幀動畫幀的變化顯示來達到顯示內(nèi)容動態(tài)變化的效果。在動畫開始之前,先把窗口設(shè)置為目標大小,所述目標大小為動畫幀所需的大小(面積),并顯示所述設(shè)置后的窗口,通過純色的C0L0RKEY畫刷填充所顯示的窗口,即將所顯示的窗口設(shè)置為透明。具體的,SetLayeredWindowAttributes函數(shù)可以為Windows 窗口設(shè)置穿透色C0L0RKEY,其中,C0L0RKEY—般設(shè)置圖片、設(shè)計中不常用的顏色,比如設(shè)置0)11?1^¥為洋紅色1?8(255,(),255)。一旦為窗口設(shè)置了0)11)^^¥,如果使用顏色值為 C0L0RKEY的畫筆或畫刷對窗口進行繪制,所繪制區(qū)域會變成完全透明的;如果把圖片繪制到窗口中,只要圖片中的像素點的顏色值跟C0L0RKEY —樣的話,該像素點就會變成完全透明。在動畫幀的顯示過程中,均需要通過SetLayerdeWindowAttributes函數(shù)為窗口設(shè)置 C0L0RKEY〇
[0148]在顯示所述設(shè)置后的窗口后,初始化并開啟定時器,定時器觸發(fā)時,表示發(fā)出動畫幀的顯示指令,接收動畫幀的顯示指令,在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域。所述定時器的定時間隔根據(jù)需要及 /或系統(tǒng)性能設(shè)置(例如CPU處理性能),可以是30ms或50ms等。
[0149]所述判斷模塊400,還用于判斷當前窗口是否存在已顯示的動畫幀;
[0150]在接收到動畫幀的顯示指令后,判斷當前窗口是否存在已顯示的動畫幀,即判斷是否存在所述待顯示動畫幀的上一幀動畫幀。
[0151]所述第二獲取模塊100,還用于若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域;
[0152]所述第二顯示模塊600,用于若當前窗口不存在已顯示的動畫幀,則在所述第七顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0153]若當前窗口存在已顯示的動畫幀,則判斷當前窗口存在所述待顯示動畫幀的上一幀動畫幀,獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域; 若當前窗口不存在已顯示的動畫幀,則判斷所述待顯示動畫幀為第七幀畫面,在所述第七顯示區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示操作。
[0154]所述第二計算模塊200,還用于計算得到所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量區(qū)域;
[0155]根據(jù)運動曲線計算出所述第七顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域。所述根據(jù)運動曲線計算的過程為現(xiàn)有的計算過程,在此不再贅述。
[0156]所述第二顯示模塊600,還用于在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
[0157]確定所述顯示指令的顯示內(nèi)容,將所述顯示內(nèi)容繪制在所述增量區(qū)域。隨著顯示的動畫幀的增加,所顯示的窗口的顯示區(qū)域逐漸增大,在窗口整個顯示區(qū)域完全顯示之后, 整個動畫幀的顯示過程完成,關(guān)閉定時器。
[0158]本實施例通過在有動畫幀需要顯示時,確定需要顯示的動畫幀與上一幀動畫幀的顯示區(qū)域的增量區(qū)域,在所述增量區(qū)域中繪制需要顯示的動畫幀,有效避免現(xiàn)有的動畫幀的顯示方式中動畫幀的顯示操作過程復雜,且占用較多CPU資源,導致動畫幀顯示效率差的問題。降低了動畫幀的顯示操作過程的復雜度,且降低了 CUP資源的占用,提高了動畫幀顯示的效率。
[0159]需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0160]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0161]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì) (如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機, 服務器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
【主權(quán)項】
1.一種動畫幀的顯示方法,其特征在于,包括步驟:在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的 顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域 作為第二顯示區(qū)域;計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯 示內(nèi)容以完成動畫幀的顯示。2.如權(quán)利要求1所述的動畫幀的顯示方法,其特征在于,所述獲取上一動畫幀在當前 窗口的顯示區(qū)域作為第二顯示區(qū)域的步驟包括:判斷當前窗口是否存在已顯示的動畫幀;若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一動畫幀在當前窗口的 顯示區(qū)域作為第二顯示區(qū)域;若當前窗口不存在已顯示的動畫幀,則在所述第一顯示區(qū)域中繪制所述待顯示動畫幀 的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。3.如權(quán)利要求1所述的動畫幀的顯示方法,其特征在于,所述獲取所述顯示指令對應 的待顯示動畫幀的顯示區(qū)域作為第一顯示區(qū)域的步驟之前,還包括:在動畫幀顯示之前,將當前窗口設(shè)置為目標大小,并顯示設(shè)置后的窗口;通過純色的COLORKEY畫刷填充所顯示的窗口。4.如權(quán)利要求1至3任一項所述的動畫幀的顯示方法,其特征在于,所述在所述增量區(qū) 域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫 幀的顯示的步驟之后,還包括:在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的 顯示區(qū)域作為第三顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域 作為第四顯示區(qū)域;計算得到所述第三顯示區(qū)域相對所述第四顯示區(qū)域的減量區(qū)域;刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。5.—種動畫幀的隱藏方法,其特征在于,包括步驟:在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示動畫幀在當前窗口的 顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域 作為第六顯示區(qū)域;計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作。6.如權(quán)利要求5所述的動畫幀的隱藏方法,其特征在于,所述刪除所述減量區(qū)域中的 顯示內(nèi)容的步驟之后,還包括:判斷當前窗口是否存在顯示區(qū)域;若當前窗口不存在顯示區(qū)域,則判斷動畫幀的隱藏操作完成,關(guān)閉窗口。7.如權(quán)利要求5或6所述的動畫幀的隱藏方法,其特征在于,所述刪除所述減量區(qū)域中 的顯示內(nèi)容的步驟包括:通過純色的COLORKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減量區(qū)域的顯示內(nèi)容刪除。8.如權(quán)利要求5或6所述的動畫幀的隱藏方法,其特征在于,所述刪除所述減量區(qū)域中 的顯示內(nèi)容,以完成所述隱藏指令對應的動畫幀的隱藏操作的步驟之后,還包括:在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示動畫幀在當前窗口的 顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在當前窗口的顯示區(qū)域 作為第八顯示區(qū)域;計算得到所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量區(qū)域;在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯 示內(nèi)容以完成動畫幀的顯示。9.一種動畫幀的顯示裝置,其特征在于,包括:第一獲取模塊,用于在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的待顯示 動畫幀在當前窗口的顯示區(qū)域作為第一顯示區(qū)域,并獲取所述待顯示動畫幀上一動畫幀在 當前窗口的顯示區(qū)域作為第二顯示區(qū)域;第一計算模塊,用于計算得到所述第一顯示區(qū)域相對所述第二顯示區(qū)域的增量區(qū)域;第一顯示模塊,用于在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述 當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。10.如權(quán)利要求9所述的動畫幀的顯示裝置,其特征在于,所述第一獲取模塊包括判斷 單元和獲取單元,所述判斷單元,用于判斷當前窗口是否存在已顯示的動畫幀;所述獲取單元,用于若當前窗口存在已顯示的動畫幀,則獲取所述待顯示動畫幀上一 動畫幀在當前窗口的顯示區(qū)域作為第二顯示區(qū)域;所述顯示模塊,還用于若當前窗口不存在已顯示的動畫幀,則在所述第一顯示區(qū)域中 繪制所述待顯示動畫幀的顯示內(nèi)容,以在所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯不〇11.如權(quán)利要求10所述的動畫幀的顯示裝置,其特征在于,所述動畫幀的顯示裝置還 包括第一刪除模塊,所述獲取單元,還用于在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯 示動畫幀在當前窗口的顯示區(qū)域作為第三顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀 在當前窗口的顯示區(qū)域作為第四顯示區(qū)域;所述第一計算模塊,還用于計算得到所述第三顯示區(qū)域相對所述第四顯示區(qū)域的減量 區(qū)域;所述第一刪除模塊,用于刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應 的動畫幀的隱藏操作。12.如權(quán)利要求9至11任一項所述的動畫幀的顯示裝置,其特征在于,所述動畫幀的顯 示裝置還包括:設(shè)置模塊,用于在動畫幀顯示之前,將當前窗口設(shè)置為目標大?。凰龅谝伙@示模塊,還用于顯示設(shè)置后的窗口;填充模塊,用于通過純色的COLORKEY畫刷填充所顯示的窗口。13.—種動畫幀的隱藏裝置,其特征在于,包括:第二獲取模塊,用于在接收到動畫幀的隱藏指令時,獲取所述隱藏指令對應的已顯示 動畫幀在當前窗口的顯示區(qū)域作為第五顯示區(qū)域,并獲取所述已顯示動畫幀上一動畫幀在 當前窗口的顯示區(qū)域作為第六顯示區(qū)域;第二計算模塊,用于計算得到所述第五顯示區(qū)域相對所述第六顯示區(qū)域的減量區(qū)域;第二刪除模塊,用于刪除所述減量區(qū)域中的顯示內(nèi)容,以完成所述隱藏指令對應的動 畫幀的隱藏操作。14.如權(quán)利要求13所述的動畫幀的隱藏裝置,其特征在于,所述動畫幀的隱藏裝置還 包括:判斷模塊,用于判斷當前窗口是否存在顯示區(qū)域;還用于若當前窗口不存在顯示區(qū) 域,則判斷動畫幀的隱藏操作完成;處理模塊,用于關(guān)閉窗口。15.如權(quán)利要求13所述的動畫幀的隱藏裝置,其特征在于,所述刪除模塊,還用于通過 純色的COLORKEY畫刷填充所述減量區(qū)域,將所述減量區(qū)域填充為透明的區(qū)域,以將所述減 量區(qū)域的顯示內(nèi)容刪除。16.如權(quán)利要求13至15任一項所述的動畫幀的隱藏裝置,其特征在于,所述動畫幀的 隱藏裝置還包括第二顯示模塊,所述第二獲取模塊,還用于在接收到動畫幀的顯示指令時,獲取所述顯示指令對應的 待顯示動畫幀在當前窗口的顯示區(qū)域作為第七顯示區(qū)域,并獲取所述待顯示動畫幀上一動 畫幀在當前窗口的顯示區(qū)域作為第八顯示區(qū)域;所述第二計算模塊,還用于計算得到所述第七顯示區(qū)域相對所述第八顯示區(qū)域的增量 區(qū)域;所述第二顯示模塊,用于在所述增量區(qū)域中繪制所述待顯示動畫幀的顯示內(nèi)容,以在 所述當前窗口顯示所述顯示內(nèi)容以完成動畫幀的顯示。
【文檔編號】G06F9/46GK105988762SQ201510072902
【公開日】2016年10月5日
【申請日】2015年2月10日
【發(fā)明人】李斌
【申請人】騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
贵港市| 西平县| 滦平县| 屏东县| 闸北区| 景宁| 龙州县| 吉木乃县| 奈曼旗| 鞍山市| 平武县| 龙江县| 武威市| 合肥市| 中卫市| 策勒县| 临桂县| 饶平县| 中山市| 大石桥市| 科尔| 常德市| 平泉县| 霍山县| 孙吴县| 达拉特旗| 辽阳市| 景德镇市| 钟祥市| 饶阳县| 紫阳县| 红安县| 云龙县| 射洪县| 吉水县| 外汇| 江华| 岗巴县| 鱼台县| 麟游县| 恩平市|