两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種多個動畫文件的合并顯示方法

文檔序號:6537151閱讀:195來源:國知局
專利名稱:一種多個動畫文件的合并顯示方法
技術(shù)領域
本發(fā)明涉及動畫制作技術(shù)領域,尤其涉及一種多個動畫文件的合并顯示方法。
背景技術(shù)
當前,即時通訊(IM)工具已經(jīng)得到越來越廣泛的應用,人們在利用IM工具實現(xiàn)即時通信的同時,對IM工具的服務質(zhì)量也有了更高的要求,其中,由于顯示在IM工具上的個人虛擬形象能夠代表IM工具使用者的許多特征,因此,備受IM工具使用者的關注,由此,需要提高IM工具上個人虛擬形象的顯示質(zhì)量,以達到提高IM工具服務質(zhì)量的需要。
在現(xiàn)有技術(shù)中,采用動畫圖像作為個人虛擬形象,以替代最初所采用的靜止圖像,以達到提高顯示質(zhì)量的需要。在實際應用過程中,允許IM工具使用者在例如臉形、發(fā)型、衣服、背景、裝飾物等虛擬形象組成元素中進行選擇,以利用所選擇的元素最終構(gòu)成動畫圖像來作為虛擬形象。各個組成元素分別具有多個備選元素以供選擇,各個備選元素分別以動畫文件的形式保存,當IM工具使用者選擇相應的備選元素后,通過預先提供的腳本命令,將這些備選元素所對應的動畫文件動態(tài)加載到一個動畫文件中,通過顯示該動畫文件則可實現(xiàn)以動畫的方式顯示個人虛擬形象。
在現(xiàn)有技術(shù)中,只是通過腳本命令將各個動畫文件動態(tài)加載到一個動畫文件中,實際上并沒有將各個動畫文件合并到一個動畫文件中,這樣做雖然能夠在視覺效果上達到合并多個動畫文件的效果,但是,由于各個動畫文件分別具有各自的存放路徑,因此,需要提供這些存放路徑給腳本命令,腳本命令還需要根據(jù)這些存放路徑分別獲得各個動畫文件來實現(xiàn)動態(tài)加載,從而增加了合并多個動畫的工作量和實現(xiàn)難度,不利于采用動畫方式作為個人虛擬形象的具體實現(xiàn)。同樣,在其它需要將多個動畫合并顯示的實際應用中,由于現(xiàn)有技術(shù)并沒有將多個動畫文件實際合并到一個動畫文件中,因此,也存著上述工作量大以及不易實現(xiàn)的問題。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種多個動畫文件的合并顯示方法,該方法能夠?qū)⒍鄠€需要合并顯示的動畫文件實際合并到一個動畫文件中并顯示,從而減少多個動畫合并顯示過程中的工作量,降低實現(xiàn)難度。
為實現(xiàn)上述目的,本發(fā)明提供了一種多個動畫文件的合并顯示方法,該方法包括步驟A為各個需要合并的動畫文件分配獨立的顯示層;步驟B將各個動畫文件的顯示內(nèi)容放置到各自所分配得到的層中;步驟C將所有層中的顯示內(nèi)容在一幀中按照一定的層次關系全部顯示出來。
其中,所述動畫文件為震蕩波格式(Swf)文件,步驟A包括步驟A1為需要合并的動畫文件分別創(chuàng)建子動畫;步驟A2為所創(chuàng)建的子動畫分別分配獨立的顯示層。
其中,步驟A1為按照各個Swf文件合并的先后次序,順序為每個需要合并的Swf文件創(chuàng)建一個動畫定義標簽塊,并為各個動畫定義標簽塊分別確定一個全局唯一的對象標識;步驟A2為為每個創(chuàng)建的動畫定義標簽塊分別創(chuàng)建一個與之對應的放置對象標簽塊,確定每個放置對象標簽塊所指明的二元數(shù)組(對象標識,層序號),其中,確定該二元數(shù)組(對象標識,層序號)中的對象標識為與該放置對象標簽塊相對應的動畫定義標簽塊的對象標識,確定該二元數(shù)組(對象標識,層序號)中的層序號為一個未被其它顯示對象占用的層的層序號。
其中,所述為各個動畫定義標簽塊分別確定一個全局唯一的對象標識為
將需要合并的Swf文件的順序號作為為該Swf文件所創(chuàng)建的動畫定義標簽塊的對象標識。
其中,所述確定該二元數(shù)組(對象標識,層序號)中的層序號為一個未被其它顯示對象占用的層的層序號為將需要合并的Swf文件的順序號作為為該Swf文件所分配的獨立的層的層序號,將該層序號作為所述二元數(shù)組(對象標識,層序號)中的層序號。
其中,所述動畫文件為Swf文件,步驟B包括步驟B0更新需要合并的動畫文件的顯示對象標識,以使得該顯示對象標識在合并之后全局唯一;步驟B1將需要合并的Swf文件的定義標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之前;步驟B2將需要合并的Swf文件的控制標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之中,作為該動畫定義標簽塊的子動畫標簽塊;步驟B3需要合并的Swf文件利用為其所創(chuàng)建的放置對象標簽塊,將為該Swf文件所創(chuàng)建的動畫定義標簽塊所定義的顯示內(nèi)容放置到為該Swf文件所分配的獨立的顯示層中。
其中,在步驟B0中,所述更新各個動畫文件的顯示對象標識為遍歷需要合并的Swf文件中的每個標簽塊的各個對象標識,為標簽塊中出現(xiàn)與已經(jīng)分配的對象標識相沖突的對象標識重新分配對象標識,并將在該Swf文件的其余標簽塊中出現(xiàn)的該對象標識也更新為重新分配后的對象標識。
其中,該方法進一步包括分別統(tǒng)計各個需要合并的Swf文件中的顯示幀標簽塊的個數(shù),然后分別用統(tǒng)計得到的個數(shù)更新對應的為Swf文件所創(chuàng)建的動畫定義標簽塊中的幀數(shù)值。
其中,步驟B3中,所述將為該Swf文件所創(chuàng)建的動畫定義標簽塊所定義的顯示內(nèi)容放置到為該Swf文件所分配的獨立的顯示層中為放置對象標簽塊將其所指明的二元數(shù)組(對象標識,層序號)添加到顯示列表中;其中,對象標識為所述為該Swf文件所創(chuàng)建的動畫定義標簽塊的對象標識,層序號為所述為該Swf文件所分配的獨立的顯示層的序號。
其中,步驟C包括顯示幀標簽塊,根據(jù)顯示列表中的各個二元數(shù)組(對象標識,層序號)的內(nèi)容,在一幀中依次播放各層的顯示內(nèi)容。
可見,本發(fā)明能夠?qū)⑿枰喜@示的多個動畫文件實際合并到一個動畫文件中,無需在合并顯示過程中使用各個動畫文件的存放路徑,從而減少了動畫文件合并顯示過程中的工作量,降低了動畫文件合并顯示的實現(xiàn)難度。


圖1為本發(fā)明一實施例中第5個Swf文件的示意圖。
圖2為實現(xiàn)本發(fā)明的流程圖。
圖3為本發(fā)明中構(gòu)建的Swf原型的示意圖。
圖4為本發(fā)明中更新對象標識之后的第5個Swf文件的示意圖。
圖5示出了本發(fā)明一實施例中,將第5個Swf文件合并到Swf原型中后的結(jié)果。
具體實施例方式
本發(fā)明為一種多個動畫文件的合并顯示方法,該方法為各個需要合并顯示的動畫文件分別分配唯一的顯示層,并且更新各個動畫文件中的對象標識值,使得各個對象標識值在合并后的動畫文件中全局唯一,然后,將各個動畫文件的顯示內(nèi)容放置到各自所分配得到的層中,最后,再將所有層中的顯示內(nèi)容在一幀中按照一定的層次關系全部顯示出來,從而實現(xiàn)多個動畫文件的合并顯示。
下面,以Flash技術(shù)中的動畫合并顯示為例,對本發(fā)明進行詳細描述,該描述的目的只在于對本發(fā)明進行說明,并不在于限定本發(fā)明的保護范圍,本發(fā)明同樣可以應用于其它形式的動畫文件之中。
在Flash的實際應用中,動畫文件以震蕩波格式(Swf)文件格式保存,Swf文件播放器讀取Swf文件中的內(nèi)容并根據(jù)該內(nèi)容播放Flash動畫。Swf文件由頭部信息和數(shù)據(jù)信息組成,其中,頭部信息包括播放該Swf文件所需要的一些公共信息,例如是否壓縮、版本信息、顯示區(qū)域等,數(shù)據(jù)信息則由多個標簽塊(Tag)順序組成,每個標簽塊分別具有各自的標簽類型(Tid)、標簽塊長度、以及標簽塊數(shù)據(jù),結(jié)束(end)標簽塊位于Swf文件的末尾,作為該文件的結(jié)束標志。
上述的標簽塊分為兩類,分別是定義標簽塊(Definition tag)和控制標簽塊(Control tag),其中每個定義標簽塊用于定義一個對象,并為每個對象分配一個唯一的對象標識(Cid),定義標簽塊分為兩種類型,下面分別對這兩種類型進行介紹1、形狀定義(DefineShape2)標簽塊,該標簽塊的Tid為22,用于為對象定義例如圓形、矩形等的形狀,并為所定義的對象分配一個Cid;2、動畫定義(DefineSprite)標簽塊,該標簽塊的Tid為39,用于定義一個動畫對象并為該動畫對象分配一個Cid,同時,該標簽塊還指明該動畫所包含的幀數(shù)(FC,F(xiàn)rameCount);動畫定義標簽塊中的標簽塊數(shù)據(jù)又是由一組嵌套的子標簽塊組成,這些子標簽塊只能是控制標簽塊,而不能包含任何定義標簽塊;通過動畫定義標簽塊,實際上相當于在主動畫下定義一個子動畫,這樣,在顯示主動畫的過程中,就能夠通過調(diào)用子動畫實現(xiàn)將主動畫和子動畫以一定的幀率同時播出。
以上對定義標簽塊進行了介紹,下面對控制標簽塊進行介紹控制標簽塊用于負責對動畫顯示過程中的操作進行控制,主要包括三種類型1、顯示幀(ShowFrame)標簽塊,該標簽塊的Tid為1,用于顯示當前幀;在Swf播放器中,設置了一個顯示列表,該顯示列表由多個二元數(shù)組組成,每個二元數(shù)組的組成形式為(Lid,Cid),其中,Lid表示層的層序號,該二元數(shù)組表示在第Lid層上顯示對象標識為Cid的對象;對于動畫中所定義的各個對象,每一層只能放置一個對象,并且,放在上層的對象將覆蓋放在下層的對象,顯示幀標簽塊根據(jù)顯示列表中的各個二元數(shù)組的內(nèi)容,將各個顯示對象按照一定的先后的層次順序顯示出來;2、放置對象(PlaceObject2)標簽塊,該標簽塊的Tid為26,該標簽塊指明Lid和一個Cid,用于在顯示列表中增加由該Lid和Cid所構(gòu)成的二元數(shù)組(Lid,Cid),通過這種方式,能夠?qū)id所對應的對象放置到Lid所對應的層;該標簽塊只用于放置,并不用于顯示所放置的對象,而是需要后續(xù)的顯示幀標簽塊出現(xiàn)時才顯示相應對象;3、移出對象(RemoveObject2)標簽塊,該標簽塊的Tid為28,該標簽塊同樣指明Lid和一個Cid,但與放置對象標簽塊相反的是,該標簽塊將該Lid和Cid所構(gòu)成的二元數(shù)組(Lid,Cid)從顯示列表中刪除,以便將Cid所對應的對象從Lid所對應的層移出,在利用該標簽塊移出對象之后,后續(xù)的顯示幀標簽塊出現(xiàn)時,就不再會將顯示類標中的第Lid層上的Cid對象顯示出來了。
另外,在Swf文件中,還經(jīng)常會出現(xiàn)動畫定義標簽塊嵌套子動畫標簽塊的情況,其中,各個子動畫標簽塊分別具有各自獨立的顯示列表以及用于顯示各個對象的一組層,從而使得各個子動畫標簽塊之間、以及子動畫標簽塊和動畫定義標簽塊之間不會出現(xiàn)層的相互沖突問題;下面結(jié)合一個具體實例,對子動畫標簽塊的嵌套進行介紹參見圖1,在一個Swf文件中,定義動畫標簽塊(Tid=39)嵌套了子動畫標簽塊,該子動畫標簽塊依次為放置對象標簽塊(Tid=26),該標簽塊指明一個二元數(shù)組(1,1),從而將Cid為1的對象放置在該子動畫標簽塊中的第1層;顯示幀標簽塊(Tid=1),該標簽塊顯示該子動畫標簽塊中的第1層的Cid為1的對象,從而顯示子動畫標簽塊的第一幀;
放置對象標簽塊(Tid=26),該標簽塊指明一個二元數(shù)組(2,2),從而將Cid為2的對象放置在該子動畫標簽塊中的第2層;顯示幀標簽塊(Tid=1),該標簽塊顯示該子動畫標簽塊中的第2層的Cid為2的對象,從而顯示子動畫標簽塊的第二幀;結(jié)束標簽塊(Tid=0),用于表示該子動畫標簽塊結(jié)束。
參見圖1,在運行該Swf文件的過程中,控制標簽塊中的放置對象標簽塊(Tid=26)將動畫定義標簽塊(Tid=39,Cid=3)所定義的動畫放置到第1層,由于動畫定義標簽塊(Tid=39,Cid=3)嵌套有如上所述的子動畫標簽塊,因此,運行所嵌套的子動畫標簽塊之后,能夠?qū)id為1的對象以及Cid為2的對象依次顯示在第1層中。
以下,對本發(fā)明進行詳細描述。
參見圖2,實現(xiàn)本發(fā)明需要以下步驟步驟201為各個需要合并的動畫文件分配獨立的顯示層;步驟202將各個動畫文件的顯示內(nèi)容放置到各自所分配得到的層中;步驟203將所有層中的顯示內(nèi)容在一幀中按照一定的層次關系全部顯示出來,從而實現(xiàn)多個動畫文件的合并顯示。
下面對以上步驟的具體實現(xiàn)進行介紹一、步驟201的具體實現(xiàn)參見圖3,在本發(fā)明實施例中,通過構(gòu)建圖3所示的Swf原型,來實現(xiàn)為各個需要合并的Swf文件分配獨立的顯示層,具體為按照各個Swf文件合并的先后次序,順序為每個需要合并的Swf文件創(chuàng)建一個動畫定義標簽塊(Tid=39),并為每個動畫定義標簽塊分別確定一個全局唯一的Cid,通過創(chuàng)建動畫定義標簽塊實現(xiàn)為需要合并的動畫文件分別創(chuàng)建子動畫,然后,為創(chuàng)建的動畫定義標簽塊分別創(chuàng)建一個與之對應的放置對象標簽塊(Tid=26),確定每個放置對象標簽塊所指明的二元數(shù)組(Cid,Lid),其中,確定該二元數(shù)組(Cid,Lid)中的Cid為與該放置對象標簽塊成組對應的動畫定義標簽塊的Cid,確定該二元數(shù)組(Cid,Lid)中的Lid為一個未被其它顯示對象占用的層的層序號,從而實現(xiàn)為各個創(chuàng)建的子動畫分配獨立的顯示層,進而利用子動畫實現(xiàn)為各個Swf文件分配獨立的顯示層;在本發(fā)明優(yōu)選實施例中,為了簡化運算,為創(chuàng)建的動畫定義標簽塊確定Cid,以及確定該二元數(shù)組(Cid,Lid)中的Lid為一個未被其它顯示對象占用的層的層序號可采用如下方式進行將需要合并的Swf文件的順序號作為為該Swf文件所創(chuàng)建的動畫定義標簽塊的Cid;將需要合并的Swf文件的順序號作為為該Swf文件所分配的獨立的層的層序號,將該層序號作為所述二元數(shù)組(Cid,Lid)中的Lid;進一步的,為了更加簡化運算,在本發(fā)明優(yōu)選實施例中,可以采用需要合并的Swf文件作為為該Swf文件所創(chuàng)建的動畫定義標簽塊的Cid,并將為該Swf文件所創(chuàng)建的放置對象標簽塊所指明的二元數(shù)組中的Cid和Lid直接分別指定為該Swf文件的序號。圖3所示就是這一優(yōu)選實施例的具體實現(xiàn),由圖3可見共有N個需要合并的Swf文件,其中N為自然數(shù),分別為每個Swf創(chuàng)建動畫定義標簽塊和放置對象標簽塊,其中,動畫定義標簽塊的Cid分別為該動畫定義標簽塊所對應的Swf文件的序號,放置對象標簽塊所指明的二元數(shù)組則為(i,i)的形式,其中,i為該放置對象標簽塊所對應的Swf文件的序號;在圖3中,由于初始狀態(tài)下動畫定義標簽塊所包含的子動畫幀數(shù)為0,因此,各個動畫定義標簽塊的FC參數(shù)分別初始化為0。
二、步驟202的具體實現(xiàn)在步驟202的具體實現(xiàn)中,需要對各個動畫文件的顯示對象標識進行更新,以避免出現(xiàn)顯示對象標識相互沖突的問題,下面對該更新過程進行介紹在一個Swf文件中,所有的對象標識Cid必須全局唯一,因此,在本發(fā)明中必須為每個需要合并的Swf文件進行Cid的更新,以滿足該要求;在本發(fā)明實施例中,設計一個全局的Cid分配器,該分配器遍歷需要合并的Swf文件中的每個標簽塊的各個對象標識,為標簽塊中出現(xiàn)與已經(jīng)分配的對象標識相沖突的對象標識重新分配對象標識,并將在該Swf文件的其余標簽塊中出現(xiàn)的該對象標識也更新為重新分配后的對象標識;例如,在將形狀定義標簽塊的Cid重新分配之后,需要將出現(xiàn)在例如放置對象標簽塊和移出對象標簽塊中的該Cid也更新為重新分配后的Cid;在進行對象標識更新后,實現(xiàn)步驟202還需要以下步驟步驟2021將需要合并的Swf文件的定義標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之前;進行該步驟的原因在于由于Swf播放器規(guī)定,在顯示一幀時,顯示列表中所涉及到的對象都必須在顯示幀標簽塊之前被定義,因此,需要將Swf文件中的所有定義標簽塊放置在與其對應的動畫定義標簽塊之前;步驟2022將需要合并的Swf文件的控制標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之中,作為該動畫定義標簽塊的子動畫標簽塊;由于控制標簽塊決定了如何播放已經(jīng)定義的各個對象,因此,將Swf文件中的控制標簽塊作為為該Swf文件所創(chuàng)建的動畫定義標簽塊之中,就可以實現(xiàn)將一個Swf文件中的顯示內(nèi)容合并到一個子動畫中;步驟2023需要合并的Swf文件利用為其所創(chuàng)建的放置對象標簽塊,將為該Swf文件所創(chuàng)建的動畫定義標簽塊所定義的顯示內(nèi)容放置到為該Swf文件所分配的獨立的顯示層中;在本發(fā)明實施例中,根據(jù)放置對象標簽塊所指明的二元數(shù)組(對象標識,層序號),實現(xiàn)將對象標識所對應的動畫定義標簽塊中的顯示內(nèi)容放置到層序號所對應的層中;其中,放置對象標簽塊通過將其所指明的二元數(shù)組(對象標識,層序號)添加到顯示列表中,實現(xiàn)將對象標識所對應的動畫定義標簽塊中的顯示內(nèi)容放置到層序號所對應的層中,但是并不顯示動畫定義標簽塊中的顯示內(nèi)容;
通過以上步驟即可實現(xiàn)步驟202,在本發(fā)明其它實施例中,為了能夠更好的滿足動畫顯示的需要,還可進一步包括以下步驟步驟2024分別統(tǒng)計各個需要合并的Swf文件中的顯示幀標簽塊的個數(shù),然后分別用統(tǒng)計得到的個數(shù)更新對應的為Swf文件所創(chuàng)建的動畫定義標簽塊中的FC值。
三、步驟203的具體實現(xiàn)利用顯示幀標簽塊,根據(jù)顯示列表中的各個二元數(shù)組內(nèi)容,在一幀中依次播放各層的顯示內(nèi)容,從而在一幀中實現(xiàn)多個Swf文件的合并播放;參見圖3,在本發(fā)明實施例中,預先在Swf原型中所有新創(chuàng)建的動畫定義標簽塊和放置對象標簽塊之后的創(chuàng)建顯示幀標簽塊,利用該顯示幀標簽塊來實現(xiàn)上述播放步驟。同樣參照圖3,為了使得合并后的Swf文件完整,在該Swf文件的最后還包括結(jié)束標簽塊。
下面,以第5個Swf文件的合并過程為例,對上述步驟的具體實現(xiàn)再加以更加具體的描述,其中,在Swf5文件中,先利用形狀定義標簽塊(Tid=22)定義了兩個物體形狀,然后利用動畫定義標簽塊(Tid=39)定義一個包含2幀子動畫,接著就利用放置對象標簽塊(Tid=26)將所定義的動畫放置到顯示列表中,最后顯示列表中的內(nèi)容,整個Swf文件共一幀。在子動畫中,先將Cid=1的對象放置到顯示列表的第一層,并且顯示第一幀,此時顯示的內(nèi)容只有Cid=1的對象;接著,將Cid=2的對象放置到顯示列表的第二層,并且顯示第二幀,此時顯示的內(nèi)容包含Cid=1和Cid=2的兩個對象;以下描述為合并的具體過程首先,創(chuàng)建如圖3所示的Swf原型,該原型表示共有N個Swf文件需要合并,其中,N表示Swf文件的個數(shù),是自然數(shù);通過創(chuàng)建該原型能夠?qū)崿F(xiàn)為包括第5個Swf文件在內(nèi)的各個需要合并的Swf文件分配各自獨立的顯示層;然后,更新各個Swf文件中的Cid,其中,第5個Swf文件的初始內(nèi)容如圖1所示,假設當執(zhí)行到合并第5個Swf文件時,Cid分配器中的Cid值已經(jīng)分配到10,所以,第5個Swf文件中,Cid=1的形狀定義標簽塊(Tid=22)將被更新為Cid=11;Cid=2的形狀定義標簽塊(Tid=22)將被更新為Cid=12;Cid=3的動畫定義標簽塊(Tid=39)將被更新為Cid=13;并且,將在其余標簽塊中出現(xiàn)的上述Cid也修改為更新后的Cid,執(zhí)行完這一步驟后,第5個Swf文件的內(nèi)容如圖4所示;通過上述這兩步,實際上實現(xiàn)了上述的步驟201,接下來,將圖4所示更新后的第5個Swf文件中的定義標簽塊放置到圖3所示Swf原型中的Swf5之前,并且,將圖4所示更新后的第5個Swf文件中的控制標簽塊放置到圖3所示Swf原型中的Swf5的動畫定義標簽塊(Tid=39)中,作為該動畫定義標簽塊的子動畫標簽塊,實現(xiàn)了上述步驟202;圖5示出了將第5個Swf文件合并到Swf原型中后的結(jié)果,其中,圖5只示出了合并后的原型的一部分;最后,在將各個Swf文件按照與第5個Swf文件相一致的方式合并到圖3所示的Swf原型中后,再利用Swf原型中的顯示幀標簽塊在一幀中顯示各層的顯示內(nèi)容,從而實現(xiàn)步驟203。合并的最終效果只顯示一幀的內(nèi)容,而這一幀的內(nèi)容包含了N個子動畫。當Swf播放器解析顯示幀標簽塊時,此時的顯示列表中將有N個二元組,每個二元組表示在第i層上顯示對象標識為i的對象。這樣,就達到了N個Swf文件同時顯示的效果,并且,N個Swf文件的前后覆蓋關系直接依賴于輸入N個Swf文件的先后順序,即第1個Swf的內(nèi)容在最底層,而第N個Swf的內(nèi)容在最高層。
以上所述為針對Swf作為動畫文件的情況下,本發(fā)明的具體實現(xiàn),依據(jù)本發(fā)明所體現(xiàn)的精神,也可以對其它格式的動畫文件實現(xiàn)本發(fā)明。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多個動畫文件的合并顯示方法,其特征在于,該方法包括步驟A為各個需要合并的動畫文件分配獨立的顯示層;步驟B將各個動畫文件的顯示內(nèi)容放置到各自所分配得到的層中;步驟C將所有層中的顯示內(nèi)容在一幀中按照一定的層次關系全部顯示出來。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動畫文件為震蕩波格式(Swf)文件,步驟A包括步驟A1為需要合并的動畫文件分別創(chuàng)建子動畫;步驟A2為所創(chuàng)建的子動畫分別分配獨立的顯示層。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A1為按照各個Swf文件合并的先后次序,順序為每個需要合并的Swf文件創(chuàng)建一個動畫定義標簽塊,并為各個動畫定義標簽塊分別確定一個全局唯一的對象標識;步驟A2為為每個創(chuàng)建的動畫定義標簽塊分別創(chuàng)建一個與之對應的放置對象標簽塊,確定每個放置對象標簽塊所指明的二元數(shù)組(對象標識,層序號),其中,確定該二元數(shù)組(對象標識,層序號)中的對象標識為與該放置對象標簽塊相對應的動畫定義標簽塊的對象標識,確定該二元數(shù)組(對象標識,層序號)中的層序號為一個未被其它顯示對象占用的層的層序號。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述為各個動畫定義標簽塊分別確定一個全局唯一的對象標識為將需要合并的Swf文件的順序號作為為該Swf文件所創(chuàng)建的動畫定義標簽塊的對象標識。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述確定該二元數(shù)組(對象標識,層序號)中的層序號為一個未被其它顯示對象占用的層的層序號為將需要合并的Swf文件的順序號作為為該Swf文件所分配的獨立的層的層序號,將該層序號作為所述二元數(shù)組(對象標識,層序號)中的層序號。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述動畫文件為Swf文件,步驟B包括步驟B0更新需要合并的動畫文件的顯示對象標識,以使得該顯示對象標識在合并之后全局唯一;步驟B1將需要合并的Swf文件的定義標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之前;步驟B2將需要合并的Swf文件的控制標簽塊放置到為該文件所創(chuàng)建的動畫定義標簽塊之中,作為該動畫定義標簽塊的子動畫標簽塊;步驟B3需要合并的Swf文件利用為其所創(chuàng)建的放置對象標簽塊,將為該Swf文件所創(chuàng)建的動畫定義標簽塊所定義的顯示內(nèi)容放置到為該Swf文件所分配的獨立的顯示層中。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在步驟B0中,所述更新各個動畫文件的顯示對象標識為遍歷需要合并的Swf文件中的每個標簽塊的各個對象標識,為標簽塊中出現(xiàn)與已經(jīng)分配的對象標識相沖突的對象標識重新分配對象標識,并將在該Swf文件的其余標簽塊中出現(xiàn)的該對象標識也更新為重新分配后的對象標識。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法進一步包括分別統(tǒng)計各個需要合并的Swf文件中的顯示幀標簽塊的個數(shù),然后分別用統(tǒng)計得到的個數(shù)更新對應的為Swf文件所創(chuàng)建的動畫定義標簽塊中的幀數(shù)值。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B3中,所述將為該Swf文件所創(chuàng)建的動畫定義標簽塊所定義的顯示內(nèi)容放置到為該Swf文件所分配的獨立的顯示層中為放置對象標簽塊將其所指明的二元數(shù)組(對象標識,層序號)添加到顯示列表中;其中,對象標識為所述為該Swf文件所創(chuàng)建的動畫定義標簽塊的對象標識,層序號為所述為該Swf文件所分配的獨立的顯示層的序號。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,步驟C包括顯示幀標簽塊,根據(jù)顯示列表中的各個二元數(shù)組(對象標識,層序號)的內(nèi)容,在一幀中依次播放各層的顯示內(nèi)容。
全文摘要
本發(fā)明公開了一種多個動畫文件的合并顯示方法,該方法包括步驟A為各個需要合并的動畫文件分配獨立的顯示層;步驟B將各個動畫文件的顯示內(nèi)容放置到各自所分配得到的層中;步驟C將所有層中的顯示內(nèi)容在一幀中按照一定的層次關系全部顯示出來。本發(fā)明能夠?qū)⑿枰喜@示的多個動畫文件實際合并到一個動畫文件中,無需在合并顯示過程中使用各個動畫文件的存放路徑,從而減少了動畫文件合并顯示過程中的工作量,降低了動畫文件合并顯示的實現(xiàn)難度。
文檔編號G06T13/00GK1831870SQ20051005157
公開日2006年9月13日 申請日期2005年3月7日 優(yōu)先權(quán)日2005年3月7日
發(fā)明者王麒 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
陵川县| 乐业县| 凌源市| 英吉沙县| 石首市| 肇庆市| 夏津县| 稷山县| 永春县| 乳山市| 乌审旗| 巴彦县| 靖安县| 芒康县| 姚安县| 天峻县| 泗洪县| 鞍山市| 黄山市| 永泰县| 太康县| 班玛县| 顺义区| 辉南县| 澄迈县| 马龙县| 太康县| 合阳县| 襄城县| 汪清县| 革吉县| 西乡县| 南城县| 乐安县| 南丰县| 泸定县| 高淳县| 新津县| 鸡泽县| 桑日县| 乌拉特前旗|