實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法及裝置,屬于計(jì)算機(jī)領(lǐng)域。所述方法包括:接收滾動(dòng)消息,所述滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向;根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),所述預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型;將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列;依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。本發(fā)明通過根據(jù)接收到的滾動(dòng)消息生成至少兩種類型的滾動(dòng)數(shù)據(jù),并依次根據(jù)添加入滾動(dòng)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)對(duì)應(yīng)的滾動(dòng)條,解決了現(xiàn)有技術(shù)中滾動(dòng)條滾動(dòng)速度固定,滾動(dòng)效果呆板生硬的問題,達(dá)到提高視覺效果和用戶體驗(yàn)的目的。
【專利說明】實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,用戶可以在顯示多媒體內(nèi)容的窗口中進(jìn)行文字、圖像、聲音和視頻的瀏覽或交流。當(dāng)多媒體內(nèi)容較多時(shí),窗口的可顯示區(qū)域通常只能顯示一部分內(nèi)容,為了查看其它內(nèi)容,可以通過滾動(dòng)該窗口的滾動(dòng)條,使不可顯示區(qū)域的內(nèi)容滾動(dòng)到當(dāng)前可視的顯示區(qū)域。
[0003]現(xiàn)有的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,包括:當(dāng)多媒體窗口處于激活狀態(tài)時(shí)(比如鼠標(biāo)焦點(diǎn)處于該多媒體窗口),接收檢測(cè)到用戶滾動(dòng)操作時(shí)產(chǎn)生的滾動(dòng)消息;根據(jù)滾動(dòng)消息中的滾動(dòng)距離和滾動(dòng)方向,以預(yù)設(shè)的滾動(dòng)速度滾動(dòng)該窗口的滾動(dòng)條。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]現(xiàn)有的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,由于滾動(dòng)條的滾動(dòng)速度固定,內(nèi)容滾動(dòng)時(shí)效果呆板生硬,沒有平滑的過渡,用戶體驗(yàn)和視覺效果很差。
【發(fā)明內(nèi)容】
[0006]為了解決現(xiàn)有技術(shù)中滾動(dòng)條滾動(dòng)速度固定,滾動(dòng)效果呆板生硬的問題,本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法及裝置。所述技術(shù)方案如下:
[0007]—方面,提供了一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,所述方法包括:
[0008]接收滾動(dòng)消息,所述滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向;
[0009]根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),所述預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型;
[0010]將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列;
[0011]依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。
[0012]所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)之前,所述方法還包括:
[0013]檢測(cè)所述滾動(dòng)條是否處于所述滾動(dòng)方向上的最終位置;
[0014]若檢測(cè)出所述滾動(dòng)條不處于所述滾動(dòng)方向上的最終位置,則執(zhí)行所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)的步驟。
[0015]所述預(yù)定類型的滾動(dòng)數(shù)據(jù)包括:勻速滾動(dòng)數(shù)據(jù)、勻減速滾動(dòng)數(shù)據(jù)和衰減滾動(dòng)數(shù)據(jù);所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),包括:
[0016]根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離;
[0017]根據(jù)所述滾動(dòng)總距離、預(yù)設(shè)的滾動(dòng)周期、預(yù)設(shè)的勻速滾動(dòng)周期數(shù)Ii1和預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度;
[0018]根據(jù)所述勻速滾動(dòng)的速度和所述預(yù)設(shè)的滾動(dòng)周期計(jì)算單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離和所述滾動(dòng)方向生成Ii1條勻速滾動(dòng)數(shù)據(jù);
[0019]根據(jù)所述勻速滾動(dòng)的速度、所述勻減速滾動(dòng)的加速度、所述預(yù)設(shè)的滾動(dòng)周期以及所述預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和所述滾動(dòng)方向生成n2條勻減速滾動(dòng)數(shù)據(jù);
[0020]獲取最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離,根據(jù)所述最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和預(yù)設(shè)的衰減系數(shù)計(jì)算至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成至少一條衰減滾動(dòng)數(shù)據(jù)。
[0021]所述n1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)中包含有各自的滾動(dòng)距離和滾動(dòng)方向;所述將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列,包括:
[0022]將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)清除,并將生成的所述Ii1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)按照各自生成時(shí)間的先后順序添加入所述滾動(dòng)數(shù)據(jù)隊(duì)列,其中,所述滾動(dòng)數(shù)據(jù)隊(duì)列最前面的滾動(dòng)數(shù)據(jù)為最先生成;
[0023] 所述依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條,包括:
[0024]當(dāng)接收到時(shí)鐘消息時(shí),讀取所述滾動(dòng)數(shù)據(jù)隊(duì)列中最前面的一條滾動(dòng)數(shù)據(jù),所述時(shí)鐘消息為預(yù)設(shè)的滾動(dòng)時(shí)鐘的時(shí)鐘周期到來時(shí)產(chǎn)生的,且所述時(shí)鐘周期與所述預(yù)設(shè)的滾動(dòng)周期相同;
[0025]根據(jù)所述讀取的滾動(dòng)數(shù)據(jù)中包含的滾動(dòng)距離和滾動(dòng)方向調(diào)整所述滾動(dòng)條的位置;
[0026]將所述讀取的滾動(dòng)數(shù)據(jù)從所述滾動(dòng)數(shù)據(jù)隊(duì)列中刪除。
[0027]所述根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離,包括:
[0028]檢測(cè)所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向是否相同;
[0029]若檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向相同,則將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的所有滾動(dòng)數(shù)據(jù)包含的滾動(dòng)距離與所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離合并,生成滾動(dòng)總距離;
[0030]若檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向不相同,則將所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾動(dòng)總距離。
[0031]另一方面,提供了一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,所述裝置包括:
[0032]消息接收模塊,用于接收滾動(dòng)消息,所述滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向;
[0033]滾動(dòng)數(shù)據(jù)生成模塊,用于根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),所述預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型;
[0034]隊(duì)列添加模塊,用于將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列;
[0035]滾動(dòng)模塊,用于依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。
[0036]所述裝置還包括:
[0037]檢測(cè)模塊,用于在所述滾動(dòng)數(shù)據(jù)生成模塊根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)之前,檢測(cè)所述滾動(dòng)條是否處于所述滾動(dòng)方向上的最終位置;
[0038]所述滾動(dòng)數(shù)據(jù)生成模塊,用于若檢測(cè)出所述滾動(dòng)條不處于所述滾動(dòng)方向上的最終位置,則執(zhí)行所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)的步驟。
[0039]所述滾動(dòng)數(shù)據(jù)生成模塊,包括:距離獲取單元、計(jì)算單元、第一數(shù)據(jù)生成單元、第二數(shù)據(jù)生成單元和第三數(shù)據(jù)生成單元;
[0040]所述距離獲取單元,用于根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離;
[0041]所述計(jì)算單元,用于根據(jù)所述滾動(dòng)總距離、預(yù)設(shè)的滾動(dòng)周期、預(yù)設(shè)的勻速滾動(dòng)周期數(shù)H1和預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度;
[0042]所述第一數(shù)據(jù)生成單元,包括:
[0043]第一計(jì)算子單元,用于根據(jù)所述勻速滾動(dòng)的速度和所述預(yù)設(shè)的滾動(dòng)周期計(jì)算單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離;
[0044]第一生成子單元,用于根據(jù)所述單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成Ii1條勻速滾動(dòng)數(shù)據(jù);
[0045]所述第二數(shù)據(jù)生成單元,包括:
[0046]第二計(jì)算子單元,用于根據(jù)所述勻速滾動(dòng)的速度、所述勻減速滾動(dòng)的加速度、所述預(yù)設(shè)的滾動(dòng)周期以及所述預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離;
[0047]第二生成子單元,用于根據(jù)所述各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成n2條勻減速滾動(dòng)數(shù)據(jù);
[0048]所述第三數(shù)據(jù)生成單元,包括:
[0049]獲取子單元,用于獲取最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離;
[0050]第三計(jì)算子單元,用于根據(jù)所述最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和預(yù)設(shè)的衰減系數(shù)計(jì)算至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離;
[0051]第三生成子單元,用于根據(jù)所述至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成至少一條衰減滾動(dòng)數(shù)據(jù)。
[0052]所述隊(duì)列添加模塊包括:數(shù)據(jù)清除單元和隊(duì)列添加單元;
[0053]所述數(shù)據(jù)清除單元,用于將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)清除;
[0054]所述隊(duì)列添加單元,用于將生成的所述Ii1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)按照各自生成時(shí)間的先后順序添加入所述滾動(dòng)數(shù)據(jù)隊(duì)列,其中,所述滾動(dòng)數(shù)據(jù)隊(duì)列最前面的滾動(dòng)數(shù)據(jù)中為最先生成;
[0055]所述窗口滾動(dòng)模塊,包括:
[0056]數(shù)據(jù)讀取單元,用于當(dāng)接收到時(shí)鐘消息時(shí),讀取所述滾動(dòng)數(shù)據(jù)隊(duì)列中最前面的一條滾動(dòng)數(shù)據(jù),所述時(shí)鐘消息為預(yù)設(shè)的滾動(dòng)時(shí)鐘的時(shí)鐘周期到來時(shí)產(chǎn)生的,且所述時(shí)鐘周期與所述預(yù)設(shè)的滾動(dòng)周期相同;
[0057]滾動(dòng)條調(diào)整單元,用于根據(jù)所述數(shù)據(jù)讀取單元讀取的滾動(dòng)數(shù)據(jù)中包含的滾動(dòng)距離和滾動(dòng)方向調(diào)整所述滾動(dòng)條的位置;
[0058]數(shù)據(jù)刪除單元,用于將所述數(shù)據(jù)讀取單元讀取的滾動(dòng)數(shù)據(jù)從所述滾動(dòng)數(shù)據(jù)隊(duì)列中刪除。
[0059]所述距離獲取單元,包括:
[0060]檢測(cè)子單元,用于檢測(cè)所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向是否相同;
[0061]獲取子單元,用于若所述檢測(cè)子單元檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向相同,則將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的所有滾動(dòng)數(shù)據(jù)包含的滾動(dòng)距離與所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離合并,生成滾動(dòng)總距離;
[0062]所述獲取子單元,用于若所述檢測(cè)子單元檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向不相同,則將所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾動(dòng)總距離。
[0063]本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0064]通過根據(jù)接收到的滾動(dòng)消息生成勻速滾動(dòng)數(shù)據(jù)、勻減速滾動(dòng)數(shù)據(jù)和衰減滾動(dòng)數(shù)據(jù),并依次根據(jù)添加入滾動(dòng)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與該滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條,解決了現(xiàn)有技術(shù)中滾動(dòng)條滾動(dòng)速度固定,滾動(dòng)效果呆板生硬的問題,達(dá)到提高視覺效果和用戶體驗(yàn)的目的。
【專利附圖】
【附圖說明】
[0065]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0066]圖1是本發(fā)明實(shí)施例一提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法的方法流程圖;
[0067]圖2是本發(fā)明實(shí)施例二提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法的方法流程圖;
[0068]圖3是本發(fā)明實(shí)施例三提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置的裝置結(jié)構(gòu)圖;
[0069]圖4是本發(fā)明實(shí)施例四提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0070]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0071]實(shí)施例一
[0072]請(qǐng)參見圖1,其示出了本發(fā)明實(shí)施例一提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法的方法流程圖。該實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法可以包括:
[0073]步驟101,接收滾動(dòng)消息,該滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向;
[0074]步驟102,根據(jù)該滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),該預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型;
[0075]步驟103,將生成的該預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列;[0076]步驟104,依次根據(jù)該滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與該滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。
[0077]綜上所述,本發(fā)明實(shí)施例一提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,通過根據(jù)接收到的滾動(dòng)消息生成至少兩種類型的滾動(dòng)數(shù)據(jù),并依次根據(jù)添加入滾動(dòng)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與該滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條,解決了現(xiàn)有技術(shù)中滾動(dòng)條滾動(dòng)速度固定,滾動(dòng)效果呆板生硬的問題,達(dá)到提高視覺效果和用戶體驗(yàn)的目的。
[0078]實(shí)施例二
[0079]為了對(duì)實(shí)施例一提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法作進(jìn)一步描述,以生成的預(yù)定類型的滾動(dòng)數(shù)據(jù)為勻速滾動(dòng)數(shù)據(jù)、勻減速滾動(dòng)數(shù)據(jù)和衰減滾動(dòng)數(shù)據(jù)為例,請(qǐng)參見圖2,其示出了本發(fā)明實(shí)施例二提供的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法的方法流程圖,其中,顯示多媒體內(nèi)容的窗口可以是即時(shí)通信軟件的交互窗口,也可以是其他帶有滾動(dòng)條的多媒體顯示窗口。為了實(shí)現(xiàn)視覺上的滾動(dòng)條滾動(dòng)效果,本發(fā)明實(shí)施例二采用的方法是:將滾動(dòng)的總距離分割成多個(gè)單次滾動(dòng)距離,并對(duì)應(yīng)每個(gè)單次滾動(dòng)距離生成一條滾動(dòng)數(shù)據(jù);另外,預(yù)先設(shè)置一個(gè)固定的滾動(dòng)周期,滾動(dòng)裝置在每個(gè)滾動(dòng)周期的開始時(shí)間點(diǎn)讀取一條滾動(dòng)數(shù)據(jù),并按照讀取的滾動(dòng)數(shù)據(jù)中的單次滾動(dòng)距離和滾動(dòng)方向調(diào)整滾動(dòng)條的當(dāng)前位置,直至所有生成的滾動(dòng)數(shù)據(jù)讀取完,或者滾動(dòng)數(shù)據(jù)未讀取完而用戶又開始了下一次滾動(dòng)操作。其中,固定的滾動(dòng)周期需要設(shè)置的足夠小(比如30ms),以使用戶在視覺上感覺不出各滾動(dòng)周期內(nèi)調(diào)整滾動(dòng)條位置時(shí)的停頓,以此實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的視覺效果。具體的計(jì)算各滾動(dòng)周期內(nèi)滾動(dòng)距離的方法和按照滾動(dòng)周期和滾動(dòng)數(shù)據(jù)調(diào)整滾動(dòng)條位置的方法請(qǐng)見本發(fā)明實(shí)施例二的具體步驟。該實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法可以包括:
[0080]步驟201,滾動(dòng)裝置接收滾動(dòng)消息,該滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向;
[0081]其中,以用戶進(jìn)行鼠標(biāo)滾輪操作為例,若鼠標(biāo)的焦點(diǎn)處于某一顯示多媒體內(nèi)容的窗口,則該窗口即處于激活狀態(tài)。此時(shí),若操作系統(tǒng)檢測(cè)到用戶滾動(dòng)鼠標(biāo)滾輪,則產(chǎn)生滾動(dòng)消息并發(fā)送給滾動(dòng)裝置。
[0082]步驟202,滾動(dòng)裝置檢測(cè)與該滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條是否處于該滾動(dòng)方向上的最終位置;
[0083]滾動(dòng)裝置可以通過檢測(cè)該滾動(dòng)條的當(dāng)前位置和滾動(dòng)消息中的滾動(dòng)方向來確認(rèn)滾動(dòng)條在滾動(dòng)方向上是否可以滾動(dòng),具體比如,若滾動(dòng)條為上下滾動(dòng),當(dāng)檢測(cè)到滾動(dòng)條處于頂部且滾動(dòng)方向向上,或者檢測(cè)到滾動(dòng)條處于底部且滾動(dòng)方向向下時(shí),則檢測(cè)出滾動(dòng)條在滾動(dòng)方向上不可以滾動(dòng),否則,檢測(cè)出滾動(dòng)條在滾動(dòng)方向上可以滾動(dòng),進(jìn)入步驟203。
[0084]步驟203,滾動(dòng)裝置若檢測(cè)出該滾動(dòng)條不處于該滾動(dòng)方向上的最終位置,則根據(jù)該滾動(dòng)消息生成滾動(dòng)數(shù)據(jù),該滾動(dòng)數(shù)據(jù)包括:勻速滾動(dòng)數(shù)據(jù)、勻減速滾動(dòng)數(shù)據(jù)和衰減滾動(dòng)數(shù)據(jù);
[0085]其中,滾動(dòng)裝置可以根據(jù)接收到的滾動(dòng)消息和預(yù)設(shè)的滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離。具體的,滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)中包含有滾動(dòng)距離和滾動(dòng)方向,滾動(dòng)裝置首先檢測(cè)該滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)所包含的滾動(dòng)方向與滾動(dòng)消息中包含的滾動(dòng)方向是否相同。
[0086]若滾動(dòng)裝置檢測(cè)出該滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與接收到的滾動(dòng)消息中包含的滾動(dòng)方向相同,則將該滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的所有滾動(dòng)數(shù)據(jù)包含的滾動(dòng)距離與該滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離合并,生成滾動(dòng)總距離;
[0087]若滾動(dòng)裝置檢測(cè)出該滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)所包含的滾動(dòng)方向與該滾動(dòng)消息中包含的滾動(dòng)方向不相同,則將該滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾動(dòng)總距離。另外,如果該預(yù)設(shè)的滾動(dòng)數(shù)據(jù)隊(duì)列當(dāng)前不包含滾動(dòng)數(shù)據(jù),則滾動(dòng)裝置直接將滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾動(dòng)總距離。
[0088]獲取滾動(dòng)總距離之后,滾動(dòng)裝置根據(jù)該滾動(dòng)總距離、預(yù)設(shè)的滾動(dòng)周期、預(yù)設(shè)的勻速滾動(dòng)周期數(shù)Ii1和預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)112計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度;其中,為了使?jié)L動(dòng)條勻速滾動(dòng)段的距離和勻減速滾動(dòng)段的距離之和等于滾動(dòng)消息中包含的
滾動(dòng)總距離,滾動(dòng)裝置可以根據(jù)下述公式計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度:
【權(quán)利要求】
1.一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,其特征在于,所述方法包括: 接收滾動(dòng)消息,所述滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向; 根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),所述預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型; 將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列; 依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,其特征在于,所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)之前,所述方法還包括: 檢測(cè)所述滾動(dòng)條是否處于所述滾動(dòng)方向上的最終位置; 若檢測(cè)出所述滾動(dòng)條不處于所述滾動(dòng)方向上的最終位置,則執(zhí)行所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)的步驟。
3.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,其特征在于,所述預(yù)定類型的滾動(dòng)數(shù)據(jù)包括:勻速滾動(dòng)數(shù)據(jù)、勻減速滾動(dòng)數(shù)據(jù)和衰減滾動(dòng)數(shù)據(jù);所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),包括: 根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離;根據(jù)所述滾動(dòng)總距離、 預(yù)設(shè)的滾動(dòng)周期、預(yù)設(shè)的勻速滾動(dòng)周期數(shù)Ii1和預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度;根據(jù)所述勻速滾動(dòng)的速度和所述預(yù)設(shè)的滾動(dòng)周期計(jì)算單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離和所述滾動(dòng)方向生成Ii1條勻速滾動(dòng)數(shù)據(jù);根據(jù)所述勻速滾動(dòng)的速度、所述勻減速滾動(dòng)的加速度、所述預(yù)設(shè)的滾動(dòng)周期以及所述預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和所述滾動(dòng)方向生成n2條勻減速滾動(dòng)數(shù)據(jù); 獲取最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離,根據(jù)所述最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和預(yù)設(shè)的衰減系數(shù)計(jì)算至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離,并根據(jù)所述至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成至少一條衰減滾動(dòng)數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,其特征在于,所述Ii1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)中包含有各自的滾動(dòng)距離和滾動(dòng)方向;所述將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列,包括: 將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)清除,并將生成的所述Ii1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)按照各自生成時(shí)間的先后順序添加入所述滾動(dòng)數(shù)據(jù)隊(duì)列,其中,所述滾動(dòng)數(shù)據(jù)隊(duì)列最前面的滾動(dòng)數(shù)據(jù)為最先生成; 所述依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條,包括: 當(dāng)接收到時(shí)鐘消息時(shí),讀取所述滾動(dòng)數(shù)據(jù)隊(duì)列中最前面的一條滾動(dòng)數(shù)據(jù),所述時(shí)鐘消息為預(yù)設(shè)的滾動(dòng)時(shí)鐘的時(shí)鐘周期到來時(shí)產(chǎn)生的,且所述時(shí)鐘周期與所述預(yù)設(shè)的滾動(dòng)周期相同; 根據(jù)所述讀取的滾動(dòng)數(shù)據(jù)中包含的滾動(dòng)距離和滾動(dòng)方向調(diào)整所述滾動(dòng)條的位置; 將所述讀取的滾動(dòng)數(shù)據(jù)從所述滾動(dòng)數(shù)據(jù)隊(duì)列中刪除。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的方法,其特征在于,所述根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離,包括: 檢測(cè)所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向是否相同; 若檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向相同,則將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的所有滾動(dòng)數(shù)據(jù)包含的滾動(dòng)距離與所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離合并,生成滾動(dòng)總距離; 若檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向不相同,則將所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾動(dòng)總距離。
6.一種實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,其特征在于,所述裝置包括: 消息接收模塊,用于接收滾動(dòng)消息,所述滾動(dòng)消息中包含有目標(biāo)滾動(dòng)距離和滾動(dòng)方向; 滾動(dòng)數(shù)據(jù)生成模塊,用于根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù),所述預(yù)定類型包括變加速、勻加速、勻速、變減速、勻減速和衰減中的至少兩種類型; 隊(duì)列添加模塊,用于將生成的所述預(yù)定類型的滾動(dòng)數(shù)據(jù)依次添加入滾動(dòng)數(shù)據(jù)隊(duì)列; 滾動(dòng)模塊,用于依次根據(jù)所述滾動(dòng)數(shù)據(jù)隊(duì)列中的滾動(dòng)數(shù)據(jù)滾動(dòng)與所述滾動(dòng)消息相對(duì)應(yīng)的滾動(dòng)條。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,其特征在于,所述裝置還包括: 檢測(cè)模塊,用于在所述滾動(dòng)數(shù)據(jù)生成模塊根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)之前,檢測(cè)所述滾動(dòng)條是否處于所述滾動(dòng)方向上的最終位置; 所述滾動(dòng)數(shù)據(jù)生成模塊,用于若檢測(cè)出所述滾動(dòng)條不處于所述滾動(dòng)方向上的最終位置,則執(zhí)行所述根據(jù)所述滾動(dòng)消息生成預(yù)定類型的滾動(dòng)數(shù)據(jù)的步驟。
8.根據(jù)權(quán)利要求6或7所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,其特征在于,所述滾動(dòng)數(shù)據(jù)生成模塊,包括:距離獲取單元、計(jì)算單元、第一數(shù)據(jù)生成單元、第二數(shù)據(jù)生成單元和第三數(shù)據(jù)生成單元; 所述距離獲取單元,用于根據(jù)所述滾動(dòng)消息和所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)獲取滾動(dòng)總距離; 所述計(jì)算單元,用于根據(jù)所述滾動(dòng)總距離、預(yù)設(shè)的滾動(dòng)周期、預(yù)設(shè)的勻速滾動(dòng)周期數(shù)H1和預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算勻速滾動(dòng)的速度和勻減速滾動(dòng)的加速度; 所述第一數(shù)據(jù)生成單元,包括: 第一計(jì)算子單元,用于根據(jù)所述勻速滾動(dòng)的速度和所述預(yù)設(shè)的滾動(dòng)周期計(jì)算單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離; 第一生成子單元,用于根據(jù)所述單個(gè)勻速滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成H1條勻速滾動(dòng)數(shù)據(jù); 所述第二數(shù)據(jù)生成單元,包括: 第二計(jì)算子單元,用于根據(jù)所述勻速滾動(dòng)的速度、所述勻減速滾動(dòng)的加速度、所述預(yù)設(shè)的滾動(dòng)周期以及所述預(yù)設(shè)的勻減速滾動(dòng)周期數(shù)n2計(jì)算各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離;第二生成子單元,用于根據(jù)所述各勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成H2條勻減速滾動(dòng)數(shù)據(jù); 所述第三數(shù)據(jù)生成單元,包括:獲取子單元,用于獲取最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離; 第三計(jì)算子單元,用于根據(jù)所述最后一個(gè)勻減速滾動(dòng)周期內(nèi)的滾動(dòng)距離和預(yù)設(shè)的衰減系數(shù)計(jì)算至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離; 第三生成子單元,用于根據(jù)所述至少一個(gè)衰減滾動(dòng)周期內(nèi)的滾動(dòng)距離和滾動(dòng)方向生成至少一條衰減滾動(dòng)數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,其特征在于,所述隊(duì)列添加模塊包括:數(shù)據(jù)清除單元和隊(duì)列添加單元; 所述數(shù)據(jù)清除單元,用于將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)清除; 所述隊(duì)列添加單元,用于將生成的所述Ii1條勻速滾動(dòng)數(shù)據(jù)、n2條勻減速滾動(dòng)數(shù)據(jù)和至少一條衰減滾動(dòng)數(shù)據(jù)按照各自生成時(shí)間的先后順序添加入所述滾動(dòng)數(shù)據(jù)隊(duì)列,其中,所述滾動(dòng)數(shù)據(jù)隊(duì)列最前面的滾動(dòng)數(shù)據(jù)為最先生成; 所述窗口滾動(dòng)模塊,包括: 數(shù)據(jù)讀取單元,用于當(dāng)接收到時(shí)鐘消息時(shí),讀取所述滾動(dòng)數(shù)據(jù)隊(duì)列中最前面的一條滾動(dòng)數(shù)據(jù),所述時(shí)鐘消息為預(yù)設(shè)的滾動(dòng)時(shí)鐘的時(shí)鐘周期到來時(shí)產(chǎn)生的,且所述時(shí)鐘周期與所述預(yù)設(shè)的滾動(dòng)周期相同; 滾動(dòng)條調(diào)整單元,用于根據(jù)所述數(shù)據(jù)讀取單元讀取的滾動(dòng)數(shù)據(jù)中包含的滾動(dòng)距離和滾動(dòng)方向調(diào)整所述滾動(dòng)條的位置; 數(shù)據(jù)刪除單元,用于將所述數(shù)據(jù)讀取單元讀取的滾動(dòng)數(shù)據(jù)從所述滾動(dòng)數(shù)據(jù)隊(duì)列中刪除。
10.根據(jù)權(quán)利要求9所述的實(shí)現(xiàn)滾動(dòng)條滾動(dòng)的裝置,其特征在于,所述距離獲取單元,包括: 檢測(cè)子單元,用于檢測(cè)所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向是否相同; 獲取子單元,用于若所述檢測(cè)子單元檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向相同,則將所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的所有滾動(dòng)數(shù)據(jù)包含的滾動(dòng)距離與所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離合并,生成滾動(dòng)總距離; 所述獲取子單元,用于若所述檢測(cè)子單元檢測(cè)出所述滾動(dòng)數(shù)據(jù)隊(duì)列中當(dāng)前存在的滾動(dòng)數(shù)據(jù)包含的滾動(dòng)方向與所述滾動(dòng)消息中包含的滾動(dòng)方向不相同,則將所述滾動(dòng)消息中包含的目標(biāo)滾動(dòng)距離作為滾 動(dòng)總距離。
【文檔編號(hào)】G06F3/0481GK103902143SQ201210581547
【公開日】2014年7月2日 申請(qǐng)日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】張明賀 申請(qǐng)人:北京新媒傳信科技有限公司