專利名稱:一種基于flash的畫面播放方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于互聯(lián)網(wǎng)和游戲領(lǐng)域,尤其涉及一種基于flash的畫面播放方法及系統(tǒng)。
背景技術(shù):
Flash為一種二維動(dòng)畫軟件,通常包括Macromedia Flash,用于設(shè)計(jì)和編輯Flash 文檔,以及Macromedia Flash Player,用于播放Flash文檔。cacheAsBitmap :flash as3中的視覺容器的一個(gè)屬性,開啟后能夠讓程序自動(dòng)將靜態(tài)圖轉(zhuǎn)換為位圖。位圖動(dòng)畫緩存在內(nèi)存中持久存儲(chǔ),并能在不增長內(nèi)存空間的情況下夠被重復(fù)使用的動(dòng)畫緩存技術(shù)。現(xiàn)有的Flash畫面的播放方法可以為接收靜態(tài)圖,開啟cacheAsBitmap將靜態(tài)圖轉(zhuǎn)換為位圖,用位圖動(dòng)畫緩存技術(shù)將位圖緩存后,計(jì)算轉(zhuǎn)換成動(dòng)畫播放?,F(xiàn)有技術(shù)提供的播放方法每個(gè)靜態(tài)圖均需要進(jìn)行計(jì)算和轉(zhuǎn)換,所以其CPU的開銷較大。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種基于flash的畫面播放方法,旨在解決現(xiàn)有技術(shù)的CPU開銷大的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,本發(fā)明提供一種基于Flash的畫面播放方法,所述方法包括如下步驟獲取畫源;判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;如是,調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。本發(fā)明還提供一種基于Flash的畫面播放系統(tǒng),所述系統(tǒng)包括獲取單元,用于獲取畫源;判斷單元,用于判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;調(diào)用播放單元,用于在所述判斷單元判斷是時(shí),調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。本發(fā)明實(shí)施例與現(xiàn)有技術(shù)相比,有益效果在于本發(fā)明的技術(shù)方案在接收到畫源時(shí),先進(jìn)行判斷,如果內(nèi)存內(nèi)有畫源的動(dòng)畫序列,則直接提取,由于內(nèi)存內(nèi)存儲(chǔ)有動(dòng)畫序列的時(shí)候,CPU不需要進(jìn)行計(jì)算(例如進(jìn)行位圖序列的轉(zhuǎn)換和拼接動(dòng)畫序列),所以該方法具有CPU的開銷小的優(yōu)點(diǎn)。
圖1是本發(fā)明提供的基于flash的畫面播放方法的流程圖;圖2是本發(fā)明提供的一種基于flash的畫面播放系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明提供一種基于flash的畫面播放方法,該方法由客戶端計(jì)算機(jī)完成,該方法如圖1所示,包括如下步驟S11、獲取畫源,該畫源可以包括靜態(tài)矢量圖或矢量圖動(dòng)畫;S12、判斷內(nèi)存中是否有該畫源的動(dòng)畫序列,如有,執(zhí)行S13,否則執(zhí)行S14-S16。S13、調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。S14、遍歷起始幀到結(jié)束幀的關(guān)鍵幀來形成每個(gè)關(guān)鍵幀的單幀位圖;S15、將所有單幀位圖拼接成一個(gè)動(dòng)畫序列,將該動(dòng)畫序列存儲(chǔ)在內(nèi)存中;S16、按關(guān)鍵幀的順序指向所有的單幀位圖進(jìn)行動(dòng)畫播放。需要說明的是,上述動(dòng)畫序列可以為由flash中的一些靜態(tài)圖片按一定順序組成的特定序列。需要說明的是,上述結(jié)束幀可以為畫源的最后一關(guān)鍵幀,該起始幀可以為如沒有使用跳幀優(yōu)化開關(guān),則該起始幀可以為畫源的第一關(guān)鍵幀;如啟用了跳幀優(yōu)化開關(guān),則起始幀可以為第η個(gè)關(guān)鍵幀,η = 1+開關(guān)值;例如開關(guān)值為1,則起始幀可以為第二關(guān)鍵幀,如開關(guān)值為5,則起始幀可以為第六關(guān)鍵幀。需要說明的是,上述S14中的關(guān)鍵幀可以為,起始幀到結(jié)束幀之間的所有關(guān)鍵幀, 也可以為起始幀到結(jié)束幀的抽樣關(guān)鍵幀,下面以一個(gè)例子來說明抽樣關(guān)鍵幀,這里假設(shè)起始幀到結(jié)束幀的關(guān)鍵幀有400個(gè)幀,則上述所有關(guān)鍵幀包括400個(gè)幀,而抽樣關(guān)鍵幀為根據(jù)抽樣頻率(用戶可以自行設(shè)置,例如0. 2(每5個(gè)關(guān)鍵幀抽取一個(gè)關(guān)鍵幀)、0. 5(每2個(gè)關(guān)鍵幀抽取一個(gè)關(guān)鍵幀)抽取的關(guān)鍵幀,如抽樣頻率為0. 25,則抽樣關(guān)鍵幀的個(gè)數(shù)為100個(gè)關(guān)鍵幀。另外需要說明的是,用戶在設(shè)定抽樣頻率的時(shí)候,需要不影響畫面質(zhì)量。需要說明的是,上述Sll中的獲取畫源的方法具體可以為從服務(wù)器獲取畫源,服務(wù)器傳入畫源的方法可以為,在服務(wù)器內(nèi)封裝一個(gè)功能接口(可以為一個(gè)功能函數(shù),也可以為一種傳入接口),開發(fā)者通過該接口,將畫源傳入到服務(wù)器。需要說明的是,實(shí)現(xiàn)S12的方法具體可以為存儲(chǔ)畫源的URL與動(dòng)畫序列的對(duì)應(yīng)關(guān)系,如內(nèi)存中存在該畫源的統(tǒng)一資源定位符 (Universal Resource Locator, URL),則判定為有動(dòng)畫序列,如內(nèi)存中沒有該畫源的URL, 則判定為沒有該畫源的動(dòng)態(tài)序列。需要說明的是,實(shí)現(xiàn)S16的方法具體可以為確定所有單幀位圖的內(nèi)存區(qū)域,按關(guān)鍵幀的順序改變關(guān)鍵幀指向的內(nèi)存區(qū)域?qū)崿F(xiàn)動(dòng)畫播放。下面以一個(gè)實(shí)例的例子來說明動(dòng)畫播放的方法,這里以幀1、幀2、幀3為例,其位于的內(nèi)存區(qū)域分別定義為區(qū)1、區(qū)2、區(qū)3 ;則在進(jìn)行動(dòng)畫播放時(shí),flash按順序指向區(qū)1、 區(qū)2和區(qū)3即實(shí)現(xiàn)動(dòng)畫播放。下面通過本發(fā)明的實(shí)現(xiàn)原理來說明本發(fā)明的技術(shù)效果,本發(fā)明提供的方法在接收到畫源時(shí),先進(jìn)行判斷,如果內(nèi)存內(nèi)有畫源的動(dòng)畫序列,則直接提取,由于內(nèi)存內(nèi)存儲(chǔ)有動(dòng)畫序列的時(shí)候,CPU不需要進(jìn)行計(jì)算(例如進(jìn)行位圖序列的轉(zhuǎn)換和拼接動(dòng)畫序列),所以該方法的CPU的開銷較小,另外,當(dāng)發(fā)現(xiàn)內(nèi)存沒有動(dòng)畫序列時(shí),形成位圖時(shí)也僅會(huì)考慮啟示幀和結(jié)束幀之間的關(guān)鍵幀,并且該關(guān)鍵幀還可以為抽樣后的關(guān)鍵幀,當(dāng)關(guān)鍵幀的處理個(gè)數(shù)越少時(shí),CPU的開銷越小,而本方法提供的技術(shù)方案能減少關(guān)鍵幀的處理個(gè)數(shù),所以其能進(jìn)一步提高CPU的開銷。并且該方法在進(jìn)行動(dòng)畫播放時(shí),不僅能處理靜態(tài)圖,還能處理矢量動(dòng)畫,所以其具有處理矢量圖動(dòng)畫的優(yōu)點(diǎn)。本發(fā)明還提供一種基于Flash的畫面播放系統(tǒng),該系統(tǒng)如圖2所示,包括獲取單元21,用于獲取畫源;判斷單元22,用于判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;調(diào)用播放單元23,用于在判斷單元22判斷是時(shí),調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。可選的,判斷單元22具體可以包括存儲(chǔ)模塊221,用于存儲(chǔ)畫源的統(tǒng)一資源定位符與動(dòng)畫序列的對(duì)應(yīng)關(guān)系;判斷模塊222,用于在內(nèi)存中存在該畫源的統(tǒng)一資源定位符時(shí),則判定為有動(dòng)畫序列,在內(nèi)存中沒有該畫源的統(tǒng)一資源定位符,則判定為沒有該畫源的動(dòng)態(tài)序列??蛇x的,上述系統(tǒng)還包括位圖形成單元M,用于在判斷單元22判斷否時(shí),遍歷起始幀到結(jié)束幀的關(guān)鍵幀來形成每個(gè)關(guān)鍵幀的單幀位圖;拼接存儲(chǔ)單元25,用于將所有單幀位圖拼接成一個(gè)動(dòng)畫序列,將該動(dòng)畫序列存儲(chǔ)在內(nèi)存中;順序播放單元沈,用于按關(guān)鍵幀的順序指向所有的單幀位圖進(jìn)行動(dòng)畫播放。需要說明的,上述畫源、起始幀、結(jié)束幀的表現(xiàn)形式可以參見方法實(shí)施例的方法說明,這里不再贅述。本發(fā)明提供的系統(tǒng)在接收到畫源時(shí),先進(jìn)行判斷,如果內(nèi)存內(nèi)有畫源的動(dòng)畫序列, 則直接提取,由于內(nèi)存內(nèi)存儲(chǔ)有動(dòng)畫序列的時(shí)候,CPU不需要進(jìn)行計(jì)算(例如進(jìn)行位圖序列的轉(zhuǎn)換和拼接動(dòng)畫序列),所以該方法的CPU的開銷較小,另外,當(dāng)發(fā)現(xiàn)內(nèi)存沒有動(dòng)畫序列時(shí),形成位圖時(shí)也僅會(huì)考慮啟示幀和結(jié)束幀之間的關(guān)鍵幀,并且該關(guān)鍵幀還可以為抽樣后的關(guān)鍵幀,關(guān)鍵幀的處理個(gè)數(shù)越少時(shí),CPU的開銷越小,而本系統(tǒng)提供的技術(shù)方案能減少關(guān)鍵幀的處理個(gè)數(shù),所以其能進(jìn)一步減少CPU的開銷。并且該方法在進(jìn)行動(dòng)畫播放時(shí),不僅能處理靜態(tài)圖,還能處理矢量動(dòng)畫,所以其具有處理矢量圖動(dòng)畫的優(yōu)點(diǎn)。值得注意的是,上述系統(tǒng),所包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。綜上所述,本發(fā)明提供的技術(shù)方案具有減少CPU開銷,支持矢量圖動(dòng)畫的優(yōu)點(diǎn)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于Flash的畫面播放方法,其特征在于,所述方法包括如下步驟 獲取畫源;判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;如是,調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括如果內(nèi)存中沒有該畫源的動(dòng)畫序列,遍歷起始幀到結(jié)束幀的關(guān)鍵幀來形成每個(gè)關(guān)鍵幀的單幀位圖;將所有單幀位圖拼接成一個(gè)動(dòng)畫序列,將該動(dòng)畫序列存儲(chǔ)在內(nèi)存中; 按關(guān)鍵幀的順序指向所有的單幀位圖進(jìn)行動(dòng)畫播放。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,判斷內(nèi)存中是否有該畫源的動(dòng)畫序列的步驟具體包括存儲(chǔ)畫源的統(tǒng)一資源定位符與動(dòng)畫序列的對(duì)應(yīng)關(guān)系,如內(nèi)存中存在該畫源的統(tǒng)一資源定位符,則判定為有畫源的動(dòng)畫序列,如內(nèi)存中沒有該畫源的統(tǒng)一資源定位符,則判定為沒有該畫源的動(dòng)態(tài)序列。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述畫源包括靜態(tài)矢量圖或矢量圖動(dòng)畫。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述結(jié)束幀為所述畫源的最后一關(guān)鍵幀;所述起始幀為如沒有使用跳幀優(yōu)化開關(guān),該起始幀為所述畫源的第一關(guān)鍵幀;如啟用了跳幀優(yōu)化開關(guān),起始幀為第η個(gè)關(guān)鍵幀;η = 1+所述優(yōu)化開關(guān)值。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述遍歷起始幀到結(jié)束幀的關(guān)鍵幀具體可以包括遍歷起始幀到結(jié)束幀的所有關(guān)鍵幀; 或起始幀到結(jié)束幀的抽樣關(guān)鍵幀。
7.一種基于Flash的畫面播放系統(tǒng),其特征在于,所述系統(tǒng)包括 獲取單元,用于獲取畫源;判斷單元,用于判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;調(diào)用播放單元,用于在所述判斷單元判斷是時(shí),調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述判斷單元具體包括 存儲(chǔ)模塊,用于存儲(chǔ)畫源的統(tǒng)一資源定位符與動(dòng)畫序列的對(duì)應(yīng)關(guān)系;判斷模塊,用于在內(nèi)存中存在該畫源的統(tǒng)一資源定位符時(shí),則判定為有動(dòng)畫序列,在內(nèi)存中沒有該畫源的統(tǒng)一資源定位符,則判定為沒有該畫源的動(dòng)態(tài)序列。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括位圖形成單元,用于在所述判斷單元判斷出內(nèi)存中沒有該畫源的動(dòng)畫序列,遍歷起始幀到結(jié)束幀的關(guān)鍵幀來形成每個(gè)關(guān)鍵幀的單幀位圖;拼接存儲(chǔ)單元,用于將所有單幀位圖拼接成一個(gè)動(dòng)畫序列,將該動(dòng)畫序列存儲(chǔ)在內(nèi)存中;順序播放單元,用于按關(guān)鍵幀的順序指向所有的單幀位圖進(jìn)行動(dòng)畫播放。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述畫源包括靜態(tài)矢量圖或矢量圖動(dòng)畫。
全文摘要
本發(fā)明適用于互聯(lián)網(wǎng)和游戲領(lǐng)域,本發(fā)明提供了一種基于Flash的畫面播放方法及系統(tǒng),該方法包括如下步驟獲取畫源;判斷內(nèi)存中是否有該畫源的動(dòng)畫序列;如是,調(diào)用該畫源的動(dòng)畫序列進(jìn)行畫面播放。本發(fā)明提供的技術(shù)方案具有CPU開銷小的優(yōu)點(diǎn)。
文檔編號(hào)G06T13/00GK102568021SQ20101058925
公開日2012年7月11日 申請(qǐng)日期2010年12月15日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者宿海成 申請(qǐng)人:騰訊科技(深圳)有限公司