專利名稱:一種微動(dòng)畫編輯器及其編輯方法
技術(shù)領(lǐng)域:
本發(fā)明涉及動(dòng)畫制作,尤其涉及一種微動(dòng)畫編輯器及其編輯方法。
背景技術(shù):
在網(wǎng)頁(yè)上我們經(jīng)常看到絢麗多彩、精美漂亮的Flash、MTV、游戲等動(dòng)畫,這些動(dòng)畫大部分的編輯工作都是使用特定的工具軟件進(jìn)行制作和編輯,比如Adobe flash輔助軟件等。雖然這些工具軟件已經(jīng)開發(fā)的愈加成熟,但這些軟件編輯出來(lái)的動(dòng)畫產(chǎn)品模型卻不能有效地反映每個(gè)動(dòng)畫中各元素的屬性及對(duì)應(yīng)的動(dòng)作關(guān)系,尤其是對(duì)于微動(dòng)畫產(chǎn)品。動(dòng)畫是經(jīng)由創(chuàng)作者的安排,使原本不具生命的東西像獲得生命一般的活動(dòng),所以動(dòng)畫是讓整幅圖片都活動(dòng)起來(lái)。而所謂的微動(dòng)畫,區(qū)別于大型游戲中的大動(dòng)作的動(dòng)畫產(chǎn)品, 而是在動(dòng)畫中的某個(gè)局部位置進(jìn)行動(dòng)作的動(dòng)畫產(chǎn)品。當(dāng)開發(fā)人員使用現(xiàn)有的制作軟件對(duì)微動(dòng)畫進(jìn)行制作時(shí),所制作出的動(dòng)畫產(chǎn)品不能有效顯示局部元素的屬性及其對(duì)應(yīng)的動(dòng)作,從而導(dǎo)致后期編輯人員對(duì)其進(jìn)行編輯時(shí)還要重復(fù)進(jìn)行工作,使開發(fā)人員與編輯人員的工作穿插比較大,容易因?yàn)槔斫鈫?wèn)題產(chǎn)生大的分歧,增加溝通成本。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明提供一種微動(dòng)畫編輯器及其編輯方法,該微動(dòng)畫編輯器能夠簡(jiǎn)單、方便地對(duì)微動(dòng)畫產(chǎn)品中各對(duì)象元素進(jìn)行配置,使得微動(dòng)畫產(chǎn)品的編輯規(guī)范化, 有利于設(shè)計(jì)人員和編輯人員理解及開發(fā)人員開發(fā)。根據(jù)本發(fā)明的一個(gè)方案,本發(fā)明提供了一種微動(dòng)畫編輯器,微動(dòng)畫通過(guò)樹形結(jié)構(gòu)模塊以樹形結(jié)構(gòu)顯示微動(dòng)畫中各對(duì)象的層次關(guān)系;通過(guò)畫布來(lái)顯示微動(dòng)畫的圖像及其編輯過(guò)程(例如通過(guò)鼠標(biāo)的拖拉動(dòng)作,或者通過(guò)鍵盤中的方向鍵對(duì)畫布中選中的元素位置進(jìn)行調(diào)整);以及通過(guò)屬性框?qū)λ鑫?dòng)畫中各對(duì)象的屬性進(jìn)行編輯。所述微動(dòng)畫編輯器包括第一轉(zhuǎn)換模塊,用于調(diào)用數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái),以及在數(shù)據(jù)模型與在屬性框之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型用于創(chuàng)建所述微動(dòng)畫中各對(duì)象用到的所有常量和變量;第二轉(zhuǎn)換模塊,用于將所述配置的數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu), 并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)模塊之間進(jìn)行數(shù)據(jù)同步;第三轉(zhuǎn)換模塊,用于將所述配置的數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;序列化模塊,用于將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);解析模塊,用于解析所述XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量,以生成相應(yīng)的數(shù)據(jù)模型。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述微動(dòng)畫編輯器還包括工具模塊,用來(lái)對(duì)所述XML 配置文件進(jìn)行上傳或下載。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述微動(dòng)畫編輯器還包括配置模塊,用于對(duì)樹形結(jié)構(gòu)中的各對(duì)象進(jìn)行添加或刪除。
4
根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述第三轉(zhuǎn)換模塊還用于在所述配置的數(shù)據(jù)模型與畫布之間進(jìn)行數(shù)據(jù)同步。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述微動(dòng)畫的各對(duì)象包括游戲、場(chǎng)景、精靈、界面文字、 按鈕以及精靈動(dòng)作其中之一或其組合。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述序列化模塊通過(guò)使數(shù)據(jù)模型中各對(duì)象之間的繼承關(guān)系與所述XML配置文件中各標(biāo)簽之間的繼承關(guān)系相一致的方法將所述數(shù)據(jù)模型轉(zhuǎn)換為 XML配置文件。根據(jù)本發(fā)明的另一個(gè)方案,本發(fā)明還提供一種微動(dòng)畫編輯方法,包括下述步驟Sl 將所述數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu),并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)模塊之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型構(gòu)建了包含有微動(dòng)畫中各對(duì)象用到的所有
常量和變量;S2:調(diào)用數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái),通過(guò)屬性框?qū)ξ?dòng)畫中各對(duì)象的屬性進(jìn)行編輯;S3:對(duì)在數(shù)據(jù)模型中各對(duì)象的屬性變量與在屬性框中該對(duì)象的相應(yīng)屬性值進(jìn)行數(shù)據(jù)同步;S4 將所述數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;S5 將經(jīng)過(guò)與屬性框、畫布以及樹形結(jié)構(gòu)同步之后的數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);S6 對(duì)微動(dòng)畫進(jìn)行二次編輯時(shí),解析所述微動(dòng)畫的XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量,以生成所述相應(yīng)的數(shù)據(jù)模型,然后再進(jìn)行步驟S1-S5。本發(fā)明提供的微動(dòng)畫編輯器通過(guò)數(shù)據(jù)模型、樹形結(jié)構(gòu)、屬性框以及畫布之間的同步,有效地反映出微動(dòng)畫產(chǎn)品中的各元素的屬性及其對(duì)應(yīng)的動(dòng)作關(guān)系,能夠精確定位各元素的坐標(biāo),能夠?qū)Ω髟氐膭?dòng)作進(jìn)行個(gè)性化配置,還能夠?qū)υ貜?fù)雜動(dòng)作進(jìn)行配置。
圖1為根據(jù)本發(fā)明的一個(gè)實(shí)施例的微動(dòng)畫產(chǎn)品中各元素對(duì)象的層次結(jié)構(gòu)示意圖;圖2為根據(jù)本發(fā)明的實(shí)施例的微動(dòng)畫編輯器的一種示例性界面示意圖;圖3為根據(jù)圖2中所示出的微動(dòng)畫編輯器的示例性界面通過(guò)畫布對(duì)圖像進(jìn)行編輯的示意圖;圖4為根據(jù)本發(fā)明的一個(gè)實(shí)施例的微動(dòng)畫編輯器的結(jié)構(gòu)框圖;圖5為根據(jù)本發(fā)明的另一個(gè)實(shí)施例的微動(dòng)畫編輯器的結(jié)構(gòu)框圖;圖6為根據(jù)本發(fā)明的再一個(gè)實(shí)施例的微動(dòng)畫編輯器的結(jié)構(gòu)框圖;圖7為根據(jù)本發(fā)明的一個(gè)實(shí)施例的編輯微動(dòng)畫的流程框圖。
具體實(shí)施例方式
下面將參照附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行闡釋。 在詳細(xì)描述本發(fā)明的微動(dòng)畫編輯器之前,將先對(duì)微動(dòng)畫產(chǎn)品的整體結(jié)構(gòu)作一下詳細(xì)說(shuō)明。
圖1為根據(jù)本發(fā)明的一個(gè)實(shí)施例的微動(dòng)畫產(chǎn)品中各元素對(duì)象的層次結(jié)構(gòu)示意圖。在一個(gè)微動(dòng)畫產(chǎn)品中,游戲元素作為微動(dòng)畫產(chǎn)品的最外層結(jié)構(gòu),用于定義整個(gè)產(chǎn)品所使用的硬件屏幕、原點(diǎn)位置及同服務(wù)器的通信地址、首頁(yè)配置文件地址等信息,一個(gè)游戲可以由若干個(gè)場(chǎng)景來(lái)構(gòu)成。場(chǎng)景為游戲中一個(gè)屬性,在場(chǎng)景中構(gòu)建了該微動(dòng)畫產(chǎn)品所需要的場(chǎng)景背景圖片、背景音樂(lè)以及獨(dú)白等,每個(gè)場(chǎng)景通常主要由由精靈、界面文字以及按鈕等構(gòu)成。當(dāng)然,可以理解到,一個(gè)游戲也可由單個(gè)場(chǎng)景來(lái)完成,這時(shí)場(chǎng)景可為微動(dòng)畫產(chǎn)品的最外層結(jié)構(gòu),如圖1所示。精靈為場(chǎng)景中的主體對(duì)象,例如場(chǎng)景中的小兔子、小貓,對(duì)于微動(dòng)畫產(chǎn)品,場(chǎng)景中的精靈的動(dòng)作幅度并不是很大,因此針對(duì)每個(gè)精靈,其動(dòng)作會(huì)被分成默認(rèn)動(dòng)作、點(diǎn)擊動(dòng)作、 熱區(qū)動(dòng)作以及調(diào)用其他精靈的動(dòng)作等。默認(rèn)動(dòng)作為微動(dòng)畫產(chǎn)品中精靈默認(rèn)在該場(chǎng)景中的動(dòng)作,例如當(dāng)打開一森林場(chǎng)景時(shí),小兔子在場(chǎng)景中奔跑的動(dòng)作。區(qū)別于默認(rèn)動(dòng)作,點(diǎn)擊動(dòng)作則需要人工對(duì)其精靈圖像進(jìn)行點(diǎn)擊,而這個(gè)點(diǎn)擊動(dòng)作的操作區(qū)域一般為精靈圖像區(qū)域的任意位置,例如,如果小兔子的跳躍動(dòng)作被預(yù)設(shè)為點(diǎn)擊動(dòng)作,則點(diǎn)擊小兔子的任意部位都可使小兔子進(jìn)行跳躍。熱區(qū)動(dòng)作與點(diǎn)擊動(dòng)作一樣,也需要人工進(jìn)行點(diǎn)擊,但是點(diǎn)擊的部位只能限定于精靈的局部區(qū)域,因而,熱區(qū)動(dòng)作與點(diǎn)擊動(dòng)作是精靈為任選其一的動(dòng)作。默認(rèn)動(dòng)作、點(diǎn)擊動(dòng)作以及熱區(qū)動(dòng)作里面都包含各自的動(dòng)作組,每個(gè)動(dòng)作組里面有一個(gè)或多個(gè)動(dòng)作,這些動(dòng)作例如為移動(dòng)到、移動(dòng)至、縮放到、縮放至、搖擺、旋轉(zhuǎn)、貝塞爾曲線、跳躍、循環(huán)播放等等。場(chǎng)景中還具有界面文字集合,界面文字集合為場(chǎng)景里面的一個(gè)集合屬性,其顯示了場(chǎng)景里面的所需要的各種文字。場(chǎng)景中還需要各種按鈕,比如上下翻頁(yè)按鈕等,各種按鈕組成按鈕集合。根據(jù)如上所述的微動(dòng)畫產(chǎn)品可知,微動(dòng)畫產(chǎn)品中需要構(gòu)建并配置表征這些各元素對(duì)象(精靈,界面文字,按鈕,精靈動(dòng)作等等)的屬性,因此,在微動(dòng)畫的編輯中,如何簡(jiǎn)單、 方便地構(gòu)建并配置各元素的屬性是重要的。如圖2所示,本發(fā)明的微動(dòng)畫編輯器在顯示界面上可以通過(guò)樹形結(jié)構(gòu)來(lái)顯示微動(dòng)畫的上述各元素對(duì)象的層次關(guān)系,通過(guò)畫布來(lái)顯示各元素對(duì)象的圖像及其編輯狀態(tài),還可通過(guò)一屬性框來(lái)對(duì)樹形結(jié)構(gòu)中的各對(duì)象的屬性進(jìn)行編輯。因此,通過(guò)本發(fā)明的微動(dòng)畫編輯器可以直接對(duì)微動(dòng)畫進(jìn)行個(gè)性化配置,并且通過(guò)可視化界面來(lái)對(duì)編輯情況進(jìn)行直觀了解。圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的微動(dòng)畫編輯器的結(jié)構(gòu)框圖。如圖4所示,為了可以實(shí)現(xiàn)上文描述的微動(dòng)畫編輯功能,根據(jù)本發(fā)明的一個(gè)實(shí)施例,本發(fā)明所提供的微動(dòng)畫編輯器包括第一轉(zhuǎn)換模塊,用于調(diào)用一數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái),以及數(shù)據(jù)模型中各對(duì)象的屬性變量與在屬性框中該對(duì)象的相應(yīng)屬性值之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型創(chuàng)建了所述微動(dòng)畫中各對(duì)象用到的所有常量和
變量;第二轉(zhuǎn)換模塊,用于將所述數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu),并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)之間進(jìn)行數(shù)據(jù)同步;第三轉(zhuǎn)換模塊,用于將所述數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;序列化模塊,用于將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);解析模塊,用于解析所述XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量,以使對(duì)XML配置文件進(jìn)行再次編輯。下面將結(jié)合具體實(shí)施例詳細(xì)描述上述微動(dòng)畫編輯器的各模塊的功能。在本發(fā)明中,無(wú)論是第一轉(zhuǎn)換模塊、第二轉(zhuǎn)換模塊或第三轉(zhuǎn)換模塊都涉及到了數(shù)據(jù)模型,因此,首先描述了本發(fā)明所用到的數(shù)據(jù)模型。在本發(fā)明的實(shí)施例中,數(shù)據(jù)模型構(gòu)建了微動(dòng)畫產(chǎn)品各元素對(duì)象所涉及的所有常量和變量,例如,創(chuàng)建各對(duì)象的屬性常量,初始化各對(duì)象變量等。由于數(shù)據(jù)模型適用于微動(dòng)畫產(chǎn)品的各元素對(duì)象,因此這些常量和變量在系統(tǒng)中具有初始的默認(rèn)值或者為空值。下面為數(shù)據(jù)模型中關(guān)于場(chǎng)景層次的數(shù)據(jù)模型的構(gòu)建示例(1)
namespace game editor.Model
{ 一
public class MyScene:MyBase
{
string backgrounds ound;
string backgroundPic;
string music;
string prev;
string next;
float delay;
string transitionPrev;
string transitionNext;
float tracsitionDuration;
private List<MyEffec> effecSet;private List<MyMenu> menus—; private List<MyLabel> IabelSet; private List<MySprite> spriteSet; private List<MyStatus> statusSet; private List<MyNewGame> gameSet; int passNums;
public MySceneQ {
Name = "index";
backgrounds ound ="";
backgroundPic ="";
music ="";
prev ="";
next ="";
delay = 0;
transitionPrev = " CCTransitionSlideInL";
transitionNext = "CCTransitionSlideInR";
tracsitionDuration = 1 .Of;
effecSet = new List<MyEffec>();
menus— = new List<MyMenu>();
IabelSet = new List<MyLabel>();
spriteSet = new List<MySprite>();
Position = new System.Drawing.PointF(0.0f,0.0f);
ObjType = MyObj ectType .AT Scene;
statusSet = new List<MyStatus>();
gameSet = new List<MyNewGame>();
passNums = 0;上述示例中的數(shù)據(jù)模型構(gòu)建了場(chǎng)景中所涉及的常量和變量,并且對(duì)所涉及的變量進(jìn)行初始化賦值,例如,初始化的場(chǎng)景屬性變量backgroundPic (背景圖片)和 backgroundSound(背景聲音)為空值。由上述示例可以理解到本發(fā)明的數(shù)據(jù)模型是將微動(dòng)畫產(chǎn)品中可能涉及到所有層次的對(duì)象及其屬性都通過(guò)數(shù)據(jù)結(jié)構(gòu)的方式描述出來(lái),數(shù)據(jù)模型作為本發(fā)明基本的核心以供其它模塊后續(xù)的屬性調(diào)用、配置以及顯示。數(shù)據(jù)模型中既構(gòu)建了微動(dòng)畫產(chǎn)品的層次結(jié)構(gòu),也配置了微動(dòng)畫產(chǎn)品所涉及對(duì)象的數(shù)量以及屬性,因此,對(duì)微動(dòng)畫產(chǎn)品的編輯即體現(xiàn)在對(duì)數(shù)據(jù)模型的變量配置上。在對(duì)微動(dòng)畫產(chǎn)品的某個(gè)對(duì)象進(jìn)行屬性編輯時(shí),第一轉(zhuǎn)換模塊調(diào)用該對(duì)象在數(shù)據(jù)模型中所涉及的屬性變量,通過(guò)屬性框在界面上顯示出來(lái),以便可以通過(guò)屬性框?qū)@些屬性變量進(jìn)行編輯。圖2中的屬性框示出了第一轉(zhuǎn)換模塊所調(diào)用的精靈對(duì)象所涉及的屬性,例如精靈名稱、精靈圖片、精靈坐標(biāo)、精靈大小等等,在屬性框中可以對(duì)這些精靈對(duì)象的各屬性進(jìn)行賦值。賦值之后的精靈屬性還可通過(guò)第一轉(zhuǎn)換模塊將這些屬性值返回給數(shù)據(jù)模型, 也即為適用于所有微動(dòng)畫產(chǎn)品的數(shù)據(jù)模型進(jìn)行個(gè)性化配置,從而生成針對(duì)某個(gè)微動(dòng)畫產(chǎn)品的數(shù)據(jù)模型。也可理解到,第一轉(zhuǎn)換模塊在調(diào)用數(shù)據(jù)模型的屬性變量時(shí),也可將數(shù)據(jù)模型中的變化更新的屬性變量值同步給屬性框,從屬性框中直觀顯示屬性值的更新,因此,第一轉(zhuǎn)換模塊的主要功能實(shí)現(xiàn)了屬性框的編輯操作與數(shù)據(jù)模型的數(shù)據(jù)同步,無(wú)論是在數(shù)據(jù)模型中對(duì)象的屬性變量值發(fā)生了變化,還是屬性框中的屬性值得到更新,都可以在另外一方中同步體現(xiàn)或顯示出來(lái)。在編輯操作上,在編輯人員對(duì)某個(gè)對(duì)象的屬性框中的屬性值進(jìn)行了修改后,其相應(yīng)的數(shù)據(jù)模型也進(jìn)行了同樣更新,從而同樣的變化也同步在下面所描述的畫布中的圖像。數(shù)據(jù)模型可以通過(guò)第二轉(zhuǎn)換模型以樹形結(jié)構(gòu)在顯示界面上顯示出來(lái)。數(shù)據(jù)模型中構(gòu)建了微動(dòng)畫產(chǎn)品的各層級(jí)結(jié)構(gòu),因此通過(guò)第二轉(zhuǎn)換模型所轉(zhuǎn)換的樹形結(jié)構(gòu)直觀地顯示了微動(dòng)畫產(chǎn)品的各層級(jí)結(jié)構(gòu)。一個(gè)微動(dòng)畫Play的樹形結(jié)構(gòu)的層次結(jié)構(gòu)如圖2和3所示,樹形結(jié)構(gòu)中的第一層為游戲,游戲包括第二層的多個(gè)場(chǎng)景,第二層的場(chǎng)景又可包括第三層的精靈集合、界面文字集合、按鈕集合等,第三層的精靈集合又可包括第四層的多個(gè)精靈,第四層的精靈可包括第五層的點(diǎn)擊動(dòng)作、默認(rèn)動(dòng)作、熱區(qū)動(dòng)作等,第五層的默認(rèn)動(dòng)作又可包括第六層的動(dòng)作集合,如此層層嵌套下去,從而將數(shù)據(jù)模型中的層次結(jié)構(gòu)通過(guò)樹形結(jié)構(gòu)來(lái)展示出來(lái)。第二轉(zhuǎn)換模塊還用于在數(shù)據(jù)模型與界面上的樹形結(jié)構(gòu)之間同步數(shù)據(jù),以使在數(shù)據(jù)模型或樹形結(jié)構(gòu)之間任一方發(fā)生變化時(shí)將其變化的數(shù)據(jù)在另一方中體現(xiàn)出來(lái)。例如,對(duì)某個(gè)微動(dòng)畫產(chǎn)品的數(shù)據(jù)模型中的場(chǎng)景變量數(shù)組進(jìn)行修改,增加了一個(gè)場(chǎng)景,通過(guò)第二轉(zhuǎn)換模塊,樹形結(jié)構(gòu)中就會(huì)增加一個(gè)場(chǎng)景;同樣地,如果界面上的樹形結(jié)構(gòu)刪除了一個(gè)精靈,通過(guò)第二轉(zhuǎn)換模塊,該樹形結(jié)構(gòu)對(duì)應(yīng)的數(shù)據(jù)模型中的相應(yīng)精靈數(shù)組就會(huì)減少一個(gè)數(shù)組成員。由于樹形結(jié)構(gòu)各對(duì)象的屬性值與數(shù)據(jù)模型的屬性變量值同步,數(shù)據(jù)模型中的屬性變量值又與屬性框的屬性值同步,因此,在對(duì)樹形結(jié)構(gòu)中的某個(gè)對(duì)象進(jìn)行點(diǎn)擊操作時(shí),就會(huì)在界面上顯示出其相應(yīng)的屬性框,從而可以對(duì)樹形結(jié)構(gòu)中的某對(duì)象進(jìn)行屬性編輯操作。進(jìn)一步地,針對(duì)某個(gè)微動(dòng)畫產(chǎn)品所配置的數(shù)據(jù)模型可通過(guò)第三轉(zhuǎn)換模塊將其涉及的對(duì)象通過(guò)畫布顯示出來(lái)。例如,圖3中的畫布顯示了某個(gè)場(chǎng)景的背景以及場(chǎng)景中的精靈對(duì)象,如兔子、啄木鳥、松鼠等。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,第三轉(zhuǎn)換模塊還可用于在畫布和配置的數(shù)據(jù)模型之間同步數(shù)據(jù),例如,通過(guò)第三轉(zhuǎn)換模塊,可以將鼠標(biāo)的拖拉動(dòng)作,或者鍵盤中的方向鍵對(duì)畫布中選中的元素位置進(jìn)行調(diào)整的動(dòng)作數(shù)據(jù)同時(shí)同步到數(shù)據(jù)模型的相應(yīng)變量中。例如,如果數(shù)據(jù)模型中修改了關(guān)于精靈松鼠的“移動(dòng)到”動(dòng)作的目的地址的屬性值,則在畫布中會(huì)顯示松鼠所移動(dòng)的目的地蒙版,表明松鼠最終移動(dòng)的位置。由此,通過(guò)第一轉(zhuǎn)換模塊、第二轉(zhuǎn)換模塊以及第三轉(zhuǎn)換模塊將以數(shù)據(jù)模型為核心將數(shù)據(jù)模型、樹形結(jié)構(gòu)、屬性框以及畫布之間的數(shù)據(jù)同步起來(lái),也即,在這四者之間任一方的數(shù)據(jù)進(jìn)行了更新或?qū)ζ溥M(jìn)行了操作,都會(huì)在其它三方之間產(chǎn)生對(duì)應(yīng)的更新。這里需要說(shuō)明的是,在本發(fā)明的微動(dòng)畫編輯器中,可以通過(guò)計(jì)算機(jī)輸入設(shè)備對(duì)樹形結(jié)構(gòu)、屬性框以及畫布進(jìn)行操作,操作不限于對(duì)樹形結(jié)構(gòu)中各對(duì)象的添加、刪除,對(duì)屬性框?qū)傩灾档木庉嬕约皩?duì)畫布中對(duì)象的移動(dòng)等操作。也可理解到,計(jì)算機(jī)輸入設(shè)備與樹形結(jié)構(gòu)、屬性框以及畫布等上述操作可以通過(guò)相關(guān)的現(xiàn)有的功能模塊來(lái)實(shí)現(xiàn),因此這里對(duì)這些實(shí)現(xiàn)上述操作的模塊并不作詳細(xì)描述。還需要理解到的是,本發(fā)明的屬性框的創(chuàng)建方式、畫布形式都可采用現(xiàn)有技術(shù)中的常用的方式。在完成針對(duì)某個(gè)微動(dòng)畫產(chǎn)品所配置的數(shù)據(jù)模型之后,本發(fā)明的微動(dòng)畫編輯器還提供了序列化模塊,用來(lái)將所配置的數(shù)據(jù)模型轉(zhuǎn)換成XML格式的配置文件,并將其存儲(chǔ)下來(lái)。序列化模塊按照數(shù)據(jù)模型與XML配置文件的繼承關(guān)系將針對(duì)某個(gè)微動(dòng)畫產(chǎn)品所配置的數(shù)據(jù)模型轉(zhuǎn)換成XML配置文件,并進(jìn)行存儲(chǔ),以進(jìn)行后續(xù)的調(diào)用。所生成的XML配置文件中的各個(gè)屬性或標(biāo)簽對(duì)應(yīng)于微動(dòng)畫產(chǎn)品的數(shù)據(jù)結(jié)構(gòu)的各對(duì)象。XML配置文件中各標(biāo)簽的繼承關(guān)系也一致于該數(shù)據(jù)模型中各對(duì)象之間的繼承關(guān)系。例如,針對(duì)上述示例(1)中的數(shù)據(jù)結(jié)構(gòu),經(jīng)過(guò)序列化模塊所生成的相應(yīng)的XML配置
文件如下〈scene id="2" delay="0" name="er" prev="index" next="san" backgroundPic="2changjing768.png" backgroundSound="haininghaoa.mp3" music="vd.mp3" tranTime=" 1" passNums="0"
tranModePre="CCTransitionSlideInL" tranModeNext="CCTransitionSlideInR"> 〈statuses /> <menus /> 〈sprites〉
〈sprite name="men" imagePath="menl @menl .png" position="{178,570}" scale=" 1" zlndex="l" tag=" 10" opacity="255"> <actions>
〈group type="sequence" repeatCount=" 1" touchScreenlazyTime="0" actionName="default" groupsCount="0">
〈action type="cycle" time="4" delay="4" repeatCount=" 1"> <images>
<image path="men 1 @men 1 .png" /> <image path="men2@men2.png" /> <image path="men3 @men3 .png" /> <image path="men4@men4.png" /> </images> </action> </group> 〈/actions〉 〈/sprite〉
〈sprite name="songshu" imagePath="songshu 1 @songshu 1 .png" position="{196,588}" scale=" 1" zlndex="0" tag="ll" opacity="255"> 〈touch moveToPoint="">
〈group type="spawn" repeatCount=" 1" touchScreenlazyTime="0" actionName="default" groupsCount="0">
〈action type="effect" time=" 10" repeatCount=" 1" labelName="xiaosongshu" isMusic="Y" music="xiaosongshu.mp3" />
〈action type="cycle" time="2" delay="2" repeatCount="5"> <images>
〈image path=" songshul@songshul .png" /> 〈image path=" songshu2@songshu2 .png" /><image path="songshul @songshu1 png" /> 〈image path=" songshu2@songshu2 .png" /> 〈image path="songshul @songshul .png" /> 〈image path=" songshu2@songshu2 .png" /> 〈/images〉 〈/action〉
〈action type="moveto" time=" 10" duration=" 10" targetPosition="{379,600}" repeatCount=" 1" /> </group> 〈/touch > 〈/sprite〉
〈sprite name="zhuomuniao" imagePath="zhuomuniaol@zhuomuniaol.png" position="{160,321}“ scale=" 1" zlndex="0" tag=" 12" opacity="255"> 〈touch moveToPoint='"' >
〈group type=" spawn" repeatCount=" 1" touchScreenlazyTime="0" actionName="default" groupsCount="0">
〈action type="cycle" time="0.6" delay="0.6" repeatCount=" 17 ">
<images>
〈image path="zhuomuniaol @zhuomuniaol .png" /> <image path="zhuomuniao2@zhuomuniao2.png" /> 〈/images〉 〈/action〉
〈action type="effect" time=" 10" repeatCount=" 1" labelName="zhuomuniao" isMusic="Y" music="zhuomuniao.mp3“ /> </group> </touch> 〈/sprite〉
〈sprite name="mao2" imagePath="mao21 @mao21 .png" position="{948,589}" scale=" 1" zlndex="0" tag="13" opacity="255"> 〈touch moveToPoint='"' >
〈group type=" spawn" repeatCount=" 1" touchScreenlazyTime="0" actionName="default" groupsCount="0">
〈action type="cycle" time=" 1.5" delay=" 1.5" repeatCount=" 10">
<images>
〈image path="mao21 @mao21 .png" /> <image path="mao22@mao22.png" /> <image path="mao23@mao23.png" /> 〈image path="mao21 @mao21 .png" /> </images> </action>
12</group> </touch> <actions>
〈group type="spawn" repeatCount=" 1 “ touchScreenlazyTime=nO" actionName="default" groupsCount="0">
〈action type="cycle" time=" 1.5" delay=" 1.5" repeatCount="7"> <images>
〈image path="mao21 @mao21 .png" /> 〈image path="mao22@mao22.png" /> 〈image path="mao23@mao23.png" /> 〈image path="mao21 @mao21 .png" /> 〈/images〉 </action>
<action type="moveto" time=" 10" duration=" 10" targetPosition="{828,492}" repeatCount=" 1" /> </group> 〈/actions〉 〈/sprite〉
〈sprite name="tuzi" imagePath="tuzil @tuzil .png" position="{811,152}" scale=" 1" zlndex="0" tag=" 14" opacity="255"> 〈touch moveToPoint="">
〈group type="spawn" repeatCount=" 1" touchScreenlazyTime=nO" actionName="default" groupsCount="0">
〈action type="cycle" time="2" delay="2" repeatCount="5"> <images>
〈image path="tuzil@tuzil .png" /> 〈image path="tuzi2@tuzi2 .png" /> 〈image path="tuzi3@tuzi3 .png" /> 〈image path="tuzi4@tuzi4 .png" /> 〈image path="tuzi5@tuzi5 .png" /> 〈image path="tuzil@tuzil .png" /> 〈/images〉 </action>
〈action type="effect" time=” 10" repeatCount="!" labelName="xiaobaitu" isMusic="Y" music="xiaobait.mp3" /> </group> </touch> 〈/sprite〉 </sprites> 〈labels〉
〈label type="LRC" name="xiaosongshu" position="{512,80}" color="{255,0,0,255}" fontSize="25" font="JQZhongYuanJT" alignment="center" demension="{ 1024,25}" opacity="255" tag=" 1000"zlndex="10" content="karaoke := CreateKaraokeObj ect; 
 ;
karaoke .rows =
2;
karaoke.clear;

karaoke.add(O0:00.697', '00:12.969',’小松鼠,尾巴大,輕輕跳上又跳下,我?guī)湍悖銕臀?,釆到松?br>
送回家?!?br>
'215,322,319,640,374,321,313,704,224,344,287,626,295,311,401,656,231,265,31 2,432,360,303,328,697,488,344,342,618,311,344,336,209’);
&#χΑ;" />
〈label type="LRC" name="zhuomuniao" position=" {478,14}" color=" {255,0,0,255}" fontSize="25" font="JQZhongYuanJT" alignment=Mright" demension=" {800,25}" opacity="255" tag=" 1001" zlndex="10" content="karaoke := CreateKaraokeObject;
karaoke.rows := 2;
karaoke.clear;

karaoke.add(O0:00.669', '00:09.103',’啄木鳥,會(huì)聽診,會(huì)開刀,治病不要錢,只收蟲一條?!?'168,248,272,792,248,263,314,678,233,264,273,599,223,368,257,273,280,582,30 5,511,352,280,336,315');
"/>
〈label type="LRC" name="xiaobaitu" position=" {508,47}" color=" {255,0,0,255}" fontSize="25" font="JQZhongYuanJT" alignment="center" demension=" {1024,100}" opacity="255" tag=" 1002" zlndex="10" content="karaoke := CreateKaraokeObj ect; 
 ;
karaoke .rows :=
2;
karaoke.clear;

karaoke.add(O0:00.749', '00:12.253',’小白兔,白又白,兩只耳朵豎起來(lái),愛吃蘿卜和青菜,蹦蹦跳跳
O ,
'207,234,223,624,232,272,264,839,263,242,279,681,319,280,240,785,408,279,28 0,529,319,265,247,696,216,248,248,561,288,328,336,272’);
&#χΑ;" /> 〈/labels〉 〈games /> </scene>為了更易理解上述XML配置文件,下面詳細(xì)介紹XML配置文件中各標(biāo)簽及其屬性。 其中XML配置文件中各個(gè)標(biāo)簽的設(shè)置也遵循上述微動(dòng)畫產(chǎn)品組織結(jié)構(gòu)的元素層次。1、〈play> 標(biāo)簽<play>標(biāo)簽可以是XML配置文件中最外層大標(biāo)簽。<play>標(biāo)簽的屬性可以包 括name、width、height、configFilepath、picPath、musicPath、sceneHome、url 禾口 originType。屬性含義mame——微動(dòng)畫名稱;width——微動(dòng)畫屏幕的寬度;height——微動(dòng)畫屏幕的高度;configFil印ath——場(chǎng)景配置文件文件夾名;picPath——圖片保存文件夾名;musicPath——音樂(lè)保存文件夾名;sceneHome——首頁(yè)場(chǎng)景名稱;url——網(wǎng)絡(luò)資源下載路徑;originType——微動(dòng)畫屏幕的原點(diǎn)位置;<play>標(biāo)簽可以包括一個(gè)或多個(gè)子標(biāo)簽 <scene>,〈scene〉為場(chǎng)景標(biāo)簽,屬性包含name,該屬性的含義是指場(chǎng)景名稱,即存儲(chǔ)的針對(duì)每個(gè)場(chǎng)景的XML配置文件的文件名。2、<scene>|^
<play>標(biāo)簽可以作為最外層大標(biāo)簽,設(shè)定微動(dòng)畫應(yīng)用軟件需要的系統(tǒng)條件。也可以將針對(duì)單個(gè)微動(dòng)畫場(chǎng)景中各元素的屬性進(jìn)行設(shè)置的〈scene〉標(biāo)簽作為最外層大標(biāo)簽。該 <scene>標(biāo)簽不同于上述<play>標(biāo)簽的子標(biāo)簽〈scene〉。在XML配置文件中允許有名稱相同的標(biāo)簽,名稱相同的標(biāo)簽可以有不同的屬性。每個(gè)場(chǎng)景都有自己的場(chǎng)景圖片、場(chǎng)景聲音、場(chǎng)景音樂(lè)、翻頁(yè)方式、進(jìn)入時(shí)間、停留時(shí)間等。這些屬性可以進(jìn)行個(gè)性化配置,以滿足不同場(chǎng)景的展示效果。<scene> 標(biāo)簽的屬個(gè)生可以包括id、delay> name、prev> next、backgroundPic> backgroundSound> music> tranTime> tranModePre 禾口 tranModeNext。屬性含義id——場(chǎng)景序號(hào);delay——場(chǎng)景停留時(shí)間;name——場(chǎng)景名稱;prev——上一場(chǎng)景名稱;next——下一場(chǎng)景名稱;backgroundPic——背景圖片;
backgroundSound-背景聲音;music-背景音樂(lè);tranTime-場(chǎng)景切換執(zhí)行時(shí)間;
tranModePre——向上一場(chǎng)景切換的方式;tranModeNext——向下一場(chǎng)景切換的方式。3、〈sprites〉標(biāo)簽每個(gè)場(chǎng)景中可以有一個(gè)或多個(gè)精靈,每個(gè)精靈都可以有位置、精靈圖片、精靈大小等屬性,這些屬性可以進(jìn)行個(gè)性化配置。此外,每個(gè)精靈還可以包含動(dòng)作類的子標(biāo)簽,從而使得精靈動(dòng)作也可以根據(jù)需要進(jìn)行配置以完成相應(yīng)的效果?!磗prite〉標(biāo)簽是〈sprites〉標(biāo)簽的子標(biāo)簽?!磗prites〉標(biāo)簽是<scene>標(biāo)簽的子標(biāo)簽,表示一個(gè)精靈集合?!磗prites〉標(biāo)簽可以包括多個(gè)〈sprite〉標(biāo)簽?!磗prite〉標(biāo)簽的屬性可以包括name、imagePath、position、 scale、zlndex、tag 禾口 opacity。屬性含義mame——精靈名稱JmageI^th——精靈圖片名稱;position——精靈坐標(biāo);scale——精靈圖片相對(duì)原始圖片的大?。籞hdex——精靈顯示索引;tag——精靈標(biāo)簽;opacity——精靈透明度。下面介紹〈sprite〉標(biāo)簽中包含的子標(biāo)簽——?jiǎng)幼髋渲脴?biāo)簽。動(dòng)作配置標(biāo)簽可以包括四種并列的子標(biāo)簽?zāi)J(rèn)動(dòng)作標(biāo)簽〈actions〉;點(diǎn)擊動(dòng)作標(biāo)簽〈touch〉;熱區(qū)集合標(biāo)簽 <miniTouchSet> ;調(diào)用其他精靈動(dòng)作標(biāo)簽<touchTrigger>。3. 1、<touchTrigger> 標(biāo)簽<touchTrigger> 標(biāo)簽可以包括屬性:actionSprite 禾口 actionName。屬性含義aCti0nSprite——調(diào)用的動(dòng)作精靈名;actionName——調(diào)用的動(dòng)作名。3. 2、<miniTouchSet> 標(biāo)簽〈minil^ouct^et〉標(biāo)簽可以包括屬性rect。屬性含義rect——第一個(gè)花括號(hào)內(nèi)的坐標(biāo)表示與精靈中心點(diǎn)位置的相對(duì)位置χ坐標(biāo)和y坐標(biāo),第二個(gè)花括號(hào)內(nèi)的坐標(biāo)表示熱區(qū)區(qū)域的寬和高。4、動(dòng)作組標(biāo)簽<group>〈actions〉、<miniTouchSet>及<touch>標(biāo)簽下面都可以包括動(dòng)作組來(lái)完成相應(yīng)動(dòng)作的配置。<group> 標(biāo)簽可以包括屬性type、repeatCount、actionName、 touchScreenlazyTime。屬性含義type——?jiǎng)幼鹘M類型,分為sequence (順序執(zhí)行)和spawn (同時(shí)執(zhí)行)兩種;I^peatCount——?jiǎng)幼鹘M重復(fù)執(zhí)行的次數(shù);actionName——組動(dòng)作名稱,默認(rèn)為default,如被其他精靈調(diào)用則修改為相應(yīng)的名稱(可以只是作為〈touch〉標(biāo)簽的子標(biāo)簽時(shí)〈group〉中才配置該屬性,如果作為非〈touch〉標(biāo)簽的子標(biāo)簽時(shí),〈group〉標(biāo)簽中的 actionName可以為默認(rèn)值);touchkreenlazyTime——場(chǎng)景加載后,默認(rèn)動(dòng)作等待運(yùn)行時(shí)間(只有在默認(rèn)動(dòng)作中設(shè)定才起作用,如果不是默認(rèn)動(dòng)作,則touchScreenlazyTime取值為 0)。下面將分別介紹〈group〉標(biāo)簽包含的各種類型的動(dòng)作子標(biāo)簽的屬性及含義。4. U moveto/moveby 類型的 <action> 標(biāo)簽moveto/moveby g M 白勺〈action〉fe ^ nj 1M :type> time、 duration、 targetPosition> repeatCount 禾口 reverse。屬性含義type——?jiǎng)幼黝愋停籺ime——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;targetPosition——?jiǎng)幼髦蟮哪繕?biāo)位置(moveby類型的〈action〉標(biāo)簽中指相對(duì)位置);I^peatCount——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù);reverse——是否反向執(zhí)行(只在moveby 類型的〈action〉標(biāo)簽中設(shè)置此屬性)。4. 2、scaleto/scaleby 類型的 <action> 標(biāo)簽scaleto/scaleby ^IMW <action> fe^ nj ^,^ Mft :type、 time、 duration、 scale、repeatCount 禾口 reverse。屬性含義type——?jiǎng)幼黝愋停籺ime——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;scale——放大/縮小的比例,1為不縮放;r印eatCoimt——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù); reverse——是否反向執(zhí)行(只在scaleby類型的〈action〉標(biāo)簽中設(shè)置該屬性)。4. 3、wag 類型的〈action〉標(biāo)簽wag gM白勺 <action> fe^nT^^SMft :type、time、IeftDuration、leftAngle、 rightDuration> rightAngle 禾口 repeatCount。屬性含義type——?jiǎng)幼黝愋?;time——?jiǎng)幼鲌?zhí)行總時(shí)間;IeftDuration——向左搖擺的時(shí)間;IeftAngle——向左搖擺的角度,一般應(yīng)該填負(fù)數(shù);rightDuration——向右搖擺的時(shí)間;rightAngle——向右搖擺的角度(與左擺角度成相反關(guān)系,即一個(gè)為正,一個(gè)為負(fù));I^peatCount——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù)。4. 4、whirl 類型的〈action〉標(biāo)簽whirl 類型的〈action〉標(biāo)簽可以包括屬性type、time、duration 禾口 repeatCountο屬性含義type——?jiǎng)幼黝愋?;time——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;I^peatCount——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù)。4. 5、blink 類型的〈action〉標(biāo)簽blink 類型的〈action〉標(biāo)簽可以包括屬性type、time、duration 禾口 repeatCountο屬性含義type——?jiǎng)幼黝愋?;time——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;I^peatCount——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù)。4. 6、jumpby 類型的〈action〉標(biāo)簽jumpby 類型的〈action〉標(biāo)簽可以包括屬性type、time、duration、targetPosition>height、jumps 禾口 repeatCount。屬性含義type——?jiǎng)幼黝愋?;time——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;targetPosition——目標(biāo)位置(相對(duì)位置);height——每次跳躍的高度; jumps——到達(dá)目標(biāo)點(diǎn),所需跳躍的次數(shù);I^peatCoimt——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù)。4. 7、貝賽爾曲線(bezierby)類型的〈action〉標(biāo)簽bezierby g M 白勺 <action> fe ^ nj 1M :type、 time、 duration、 targetPosition、controlPointl、controlPoint2 禾口 repeatCount。屬性含義type——?jiǎng)幼黝愋停籺ime——?jiǎng)幼鲌?zhí)行總時(shí)間;duration——?jiǎng)幼鲌?zhí)行時(shí)間;targetPosition——?jiǎng)幼骱蟮哪繕?biāo)位置(相對(duì)位置);controlPointl——控制點(diǎn)1 的坐標(biāo)(相對(duì)位置);c0ntr0lP0int2——控制點(diǎn)2的坐標(biāo)(相對(duì)位置);r印eatCount—— 動(dòng)作重復(fù)執(zhí)行的次數(shù)。4. 8、cycle 類型的〈action〉標(biāo)簽cycle 類型的 <action> 標(biāo)簽可以包括屬性type、time、delay 禾口 r印eatCount。屬性含義type——?jiǎng)幼黝愋停籺ime——?jiǎng)幼鲌?zhí)行總時(shí)間;delay——圖片播放的總時(shí)間;I^peatCount——?jiǎng)幼髦貜?fù)執(zhí)行的次數(shù)。4. 9、effect 類型的〈action〉標(biāo)簽effect gM 白勺 <action> fe^ nj ^,^ Mft :type、 time、music、repeatCount> IabelName 禾口 isMusic。屬性含義type——?jiǎng)幼黝愋停籱usic——音樂(lè)名稱;IabelName——配合音樂(lè)顯示的界面文字名稱;isMusic——是否為音樂(lè)(Y表示音樂(lè),N表示音效)。4. 10、event 類型的〈action〉標(biāo)簽event類型的〈action〉標(biāo)簽可以包括屬性type、time和tag。屬性含義type——?jiǎng)幼黝愋?;time——?jiǎng)幼鲌?zhí)行的時(shí)間;tag——事件執(zhí)行動(dòng)作類型,例如,“100”表示向前一頁(yè)翻頁(yè)模式;“101”表示向后翻頁(yè)模式;“102”表示向主頁(yè)翻頁(yè)模式。event類型的〈action〉標(biāo)簽的屬性配置的例子如下〈action type = 〃 event" time =" 10〃 tag=" 101〃 />5、<menus> 標(biāo)簽每個(gè)場(chǎng)景中都可以有按鈕(menu),每個(gè)按鈕里面又可以有一組按鈕項(xiàng)。按鈕項(xiàng)的排列順序由按鈕的基本屬性來(lái)確定,每個(gè)按鈕項(xiàng)會(huì)對(duì)應(yīng)有自己的處理事件等基本屬性。這些屬性都可以進(jìn)行個(gè)性化配置,以滿足不同場(chǎng)景對(duì)按鈕需要完成的效果的配置。<menu>標(biāo)簽是<menus>標(biāo)簽的子標(biāo)簽。<menu>標(biāo)簽可以包括屬性zhdex、tag、 fontSize、position 禾口 showStyle。屬性含義zlndex——顯示索引,數(shù)字越大越靠上顯示;tag——標(biāo)簽,調(diào)用按鈕時(shí)使用,不同的按鈕要有不同的標(biāo)簽值;fontSize——如果按鈕選用的是文字的話,設(shè)置按鈕中的字體的大小;position——按鈕位于場(chǎng)景中的坐標(biāo),即按鈕中心點(diǎn)的位置;showStyle——按鈕項(xiàng)的排列方式,即一個(gè)按鈕中的各個(gè)按鈕項(xiàng)的排列方式horizontally(水平排列)或者vertically (垂直排列)。<item>標(biāo)簽即按鈕項(xiàng)標(biāo)簽,是&enu>標(biāo)簽的子標(biāo)簽。<item>標(biāo)簽可以包括屬性 normalImage>selectedlmage>disabIeImage>isEnable>target、selector 禾口 tag。屬性含義normal Image——按鈕項(xiàng)顯示的默認(rèn)圖片;selectedlmage——按鈕項(xiàng)選擇后顯示的圖片;disablelmage——按鈕項(xiàng)不可用時(shí)顯示的圖片;isEnable——按鈕項(xiàng)是否可用; target——默認(rèn)值為self ;selector——預(yù)留操作字段;tag——menu按鈕的按鈕項(xiàng)的標(biāo)簽值,調(diào)用時(shí)使用,不同的按鈕項(xiàng)要有不同的tag值,用于觸發(fā)不同的事件。6、〈labels〉標(biāo)簽每個(gè)場(chǎng)景都可能有默認(rèn)顯示的界面文字,或者某些精靈發(fā)聲時(shí)需要對(duì)應(yīng)顯示相應(yīng)的文字。這些文字有字體、字號(hào)、顏色、位置、對(duì)齊方式等相關(guān)的基本屬性。這些屬性都可以進(jìn)行個(gè)性化配置,以滿足不同的場(chǎng)景的界面文字需要完成的效果。<label>標(biāo)簽是〈labels〉標(biāo)簽的子標(biāo)簽。<label>標(biāo)簽可以包括屬性type、 name、position、color、fontSize、font、alignment、demension、opacity> tag、zlndex 禾口 content。屬性含義type——文字界面類型,可以包括普通text和LRC兩種類型;name——文字界面名稱,默認(rèn)為default ;position——文字界面坐標(biāo)位置,文字界面中心點(diǎn)的坐標(biāo); color——文字界面中文字的顏色;fontSize——文字界面中文字的字號(hào);font——文字界面中文字的字體;alignment——文字界面中文字的對(duì)齊方式居中對(duì)齊方式、左對(duì)齊方式、 右對(duì)齊方式;demension——文字界面區(qū)域范圍;opacity——文字界面中文字的透明度; tag——文字界面的標(biāo)簽;dndeX——文字界面在場(chǎng)景中的顯示索引;content——文字界面中顯示的內(nèi)容。上文中描述了 XML配置文件中的各標(biāo)簽及其屬性,可以明顯看出其對(duì)應(yīng)數(shù)據(jù)模型的各標(biāo)簽的含義。經(jīng)過(guò)序列化模塊生成的XML配置文件可以根據(jù)需求適用在不同操作系統(tǒng)中對(duì)該XML配置文件的微動(dòng)畫產(chǎn)品進(jìn)行查看。但是在微動(dòng)畫編輯中,一個(gè)微動(dòng)畫產(chǎn)品并不是一次就可完成編輯工作,而是需要根據(jù)需求對(duì)微動(dòng)畫產(chǎn)品進(jìn)行反復(fù)編輯修改,因此,為了對(duì)已經(jīng)生成XML配置文件的微動(dòng)畫產(chǎn)品進(jìn)行二次編輯,本發(fā)明的微動(dòng)畫編輯器還包括解析模塊,用于解析所生成的XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的變量,從而生成相應(yīng)于XML配置文件的數(shù)據(jù)模型。因此,在編輯人員對(duì)某個(gè)XML配置文件進(jìn)行二次編輯時(shí),通過(guò)解析模塊將XML配置文件再生成相應(yīng)的數(shù)據(jù)模型,然后再基于與該XML配置文件相應(yīng)的數(shù)據(jù)模型進(jìn)行編輯。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,如圖5所示,本發(fā)明的微動(dòng)畫編輯器還可包括工具模塊,工具模塊具有上傳或下載XML配置文件等功能。如果在生成一個(gè)微動(dòng)畫產(chǎn)品過(guò)程中, 需要將所生成的XML配置文件都存放在遠(yuǎn)端服務(wù)器上,則需要工具模塊來(lái)進(jìn)行XML配置文件的上傳或下載。進(jìn)一步地,一個(gè)微動(dòng)畫產(chǎn)品中涉及到大量的XML配置文件,則所述工具模塊還用于XML配置文件的打包上傳、下載等功能。根據(jù)本發(fā)明的再一個(gè)實(shí)施例,如圖6所示,本發(fā)明的微動(dòng)畫編輯器還可包括配置模塊,用于對(duì)樹形結(jié)構(gòu)中各對(duì)象的添加和刪除,以使可以在樹形結(jié)構(gòu)中進(jìn)行微動(dòng)畫數(shù)據(jù)模型的配置。本發(fā)明提供的微動(dòng)畫編輯器通過(guò)數(shù)據(jù)模型、樹形結(jié)構(gòu)、屬性框以及畫布之間的同步,有效地反映出微動(dòng)畫產(chǎn)品中的各元素的屬性及其對(duì)應(yīng)的動(dòng)作關(guān)系,能夠精確定位各元素的坐標(biāo),能夠?qū)Ω髟氐膭?dòng)作進(jìn)行量化配置,還能夠?qū)υ貜?fù)雜動(dòng)作進(jìn)行配置。為此,本發(fā)明還提供一種微動(dòng)畫編輯方法,所述方法包括Sl 將一數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu),并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)模塊之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型構(gòu)建了包含有微動(dòng)畫中各對(duì)象用到的所有常量和變量;S2:調(diào)用數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái),所述屬性框用來(lái)對(duì)微動(dòng)畫中各對(duì)象的屬性進(jìn)行編輯;S3:對(duì)在數(shù)據(jù)模型中各對(duì)象的屬性變量與在屬性框中該對(duì)象的相應(yīng)屬性值進(jìn)行數(shù)據(jù)同步;S4 將所述數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;S5 將經(jīng)過(guò)與所述屬性框、所述樹形結(jié)構(gòu)同步之后的數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);所述微動(dòng)畫編輯方法在對(duì)微動(dòng)畫進(jìn)行二次編輯時(shí)還包括解析所述微動(dòng)畫的XML 配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量, 以生成所述相應(yīng)的數(shù)據(jù)模型,然后再進(jìn)行步驟S1-S5。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所述步驟S4中還包括在所述數(shù)據(jù)模型與所述畫布之間進(jìn)行數(shù)據(jù)同步的步驟,從而所述步驟S5中還包括下述步驟將經(jīng)過(guò)與所述屬性框、所述畫布以及所述樹形結(jié)構(gòu)同步之后的數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在所述步驟S5中,通過(guò)使數(shù)據(jù)模型中各對(duì)象之間的繼承關(guān)系與所述XML配置文件中各標(biāo)簽之間的繼承關(guān)系相一致的方法將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在所述步驟Si、S3或S4之后,還包括對(duì)所述樹形結(jié)構(gòu)中的各對(duì)象進(jìn)行添加或刪除的步驟。上述步驟S1-S4中的順序部不限于上文中描述的順序,而是可以各種順序來(lái)進(jìn)行。例如,步驟S2-S3與S4之間的順序可以進(jìn)行交換,因而本發(fā)明的微動(dòng)畫編輯方法可以步驟S1-S4-S2-S3-S5-S6的順序?qū)嵤1绢I(lǐng)域普通技術(shù)人員可以理解到數(shù)據(jù)模型與樹形結(jié)構(gòu)模塊、畫布以及屬性框之間的數(shù)據(jù)同步可以是任意順序,只要能夠?qū)崿F(xiàn)本發(fā)明即可。本發(fā)明提供的微動(dòng)畫編輯器中各模塊及微動(dòng)畫編輯方法中的各步驟,可以由具有數(shù)據(jù)處理能力的一個(gè)或多個(gè)處理設(shè)備,例如一個(gè)或多個(gè)計(jì)算機(jī)運(yùn)行計(jì)算機(jī)可執(zhí)行的指令來(lái)實(shí)現(xiàn)。存儲(chǔ)介質(zhì)中可以存儲(chǔ)各種用于執(zhí)行本申請(qǐng)?zhí)峁┑奈?dòng)畫編輯方法的各個(gè)步驟的指令。本申請(qǐng)的微動(dòng)畫編輯器可以由運(yùn)行計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)處理設(shè)備實(shí)現(xiàn)。微動(dòng)畫編輯器中的模塊可以為該處理設(shè)備運(yùn)行計(jì)算機(jī)可執(zhí)行指令時(shí)具有相應(yīng)功能的設(shè)備組件。雖然已參照典型實(shí)施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語(yǔ)是說(shuō)明和示例性、 而非限制性的術(shù)語(yǔ)。由于本發(fā)明能夠以多種具體形式實(shí)施而不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì)節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
權(quán)利要求
1.一種微動(dòng)畫編輯器,其特征在于,微動(dòng)畫通過(guò)樹形結(jié)構(gòu)模塊以樹形結(jié)構(gòu)顯示微動(dòng)畫中各對(duì)象的層次關(guān)系,通過(guò)畫布來(lái)顯示微動(dòng)畫的圖像及其編輯過(guò)程,以及通過(guò)屬性框?qū)λ鑫?dòng)畫中各對(duì)象的屬性進(jìn)行編輯,所述編輯器包括第一轉(zhuǎn)換模塊,用于調(diào)用一數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái),以及用于在數(shù)據(jù)模型與屬性框之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型用于創(chuàng)建所述微動(dòng)畫中各對(duì)象用到的所有常量和變量;第二轉(zhuǎn)換模塊,用于將所述數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu),并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)模塊之間進(jìn)行數(shù)據(jù)同步;第三轉(zhuǎn)換模塊,用于將所述數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像; 序列化模塊,用于將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ); 解析模塊,用于解析所述XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量,以生成相應(yīng)的數(shù)據(jù)模型。
2.根據(jù)權(quán)利要求1所述的微動(dòng)畫編輯器,其特征在于,所述微動(dòng)畫編輯器還包括工具模塊,用于對(duì)所述XML配置文件進(jìn)行上傳或下載。
3.根據(jù)權(quán)利要求1所述的微動(dòng)畫編輯器,其特征在于,所述微動(dòng)畫編輯器還包括配置模塊,用于對(duì)樹形結(jié)構(gòu)中的各對(duì)象進(jìn)行添加或刪除。
4.根據(jù)權(quán)利要求1所述的微動(dòng)畫編輯器,其特征在于,所述第三轉(zhuǎn)換模塊還用于在所述數(shù)據(jù)模型與畫布之間進(jìn)行數(shù)據(jù)同步。
5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的微動(dòng)畫編輯器,其特征在于,所述微動(dòng)畫的各對(duì)象包括游戲、場(chǎng)景、精靈、界面文字、按鈕以及精靈動(dòng)作其中之一或其組合。
6.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的微動(dòng)畫編輯器,其特征在于,所述序列化模塊通過(guò)使數(shù)據(jù)模型中各對(duì)象之間的繼承關(guān)系與所述XML配置文件中各標(biāo)簽之間的繼承關(guān)系相一致的方法將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件。
7.一種微動(dòng)畫編輯方法,其特征在于,所述方法包括下述步驟51將一數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu),并且在數(shù)據(jù)模型和樹形結(jié)構(gòu)模塊之間進(jìn)行數(shù)據(jù)同步,其中所述數(shù)據(jù)模型構(gòu)建了包含有微動(dòng)畫中各對(duì)象用到的所有常量和變量;52調(diào)用數(shù)據(jù)模型中各對(duì)象的屬性變量,并將所調(diào)用的屬性變量通過(guò)屬性框顯示出來(lái), 所述屬性框用來(lái)對(duì)微動(dòng)畫中各對(duì)象的屬性進(jìn)行編輯;53對(duì)在數(shù)據(jù)模型中各對(duì)象的屬性變量與在屬性框中該對(duì)象的相應(yīng)屬性值進(jìn)行數(shù)據(jù)同步;54將所述數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;55將經(jīng)過(guò)與所述屬性框、所述樹形結(jié)構(gòu)同步之后的數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);56在對(duì)微動(dòng)畫進(jìn)行二次編輯時(shí),解析所述微動(dòng)畫的XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量,以生成所述相應(yīng)的數(shù)據(jù)模型, 然后再進(jìn)行步驟S1-S5。
8.根據(jù)權(quán)利要求7所述的微動(dòng)畫編輯方法,其特征在于,所述步驟S4中還包括在所述數(shù)據(jù)模型與所述畫布之間進(jìn)行數(shù)據(jù)同步的步驟;所述步驟S5還包括將將經(jīng)過(guò)與所述屬性框、所述畫布以及所述樹形結(jié)構(gòu)同步之后的數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ)。
9.根據(jù)權(quán)利要求7或8所述的微動(dòng)畫編輯方法,其特征在于,在所述步驟S5中,通過(guò)使數(shù)據(jù)模型中各對(duì)象之間的繼承關(guān)系與所述XML配置文件中各標(biāo)簽之間的繼承關(guān)系相一致的方法將所述數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件。
10.根據(jù)權(quán)利要求7或8所述的微動(dòng)畫編輯方法,其特征在于,在所述步驟S1、S3或S4 之后,還包括對(duì)所述樹形結(jié)構(gòu)中的各對(duì)象進(jìn)行添加或刪除的步驟。
全文摘要
本發(fā)明涉及一種微動(dòng)畫編輯器及其編輯方法,其中微動(dòng)畫編輯器包括第一轉(zhuǎn)換模塊,用于調(diào)用一數(shù)據(jù)模型中各對(duì)象的屬性變量并通過(guò)屬性框顯示出來(lái),以及在數(shù)據(jù)模型與屬性框之間進(jìn)行數(shù)據(jù)同步,其中數(shù)據(jù)模型創(chuàng)建微動(dòng)畫中各對(duì)象用到的所有常量和變量;第二轉(zhuǎn)換模塊,用于將數(shù)據(jù)模型轉(zhuǎn)換為樹形結(jié)構(gòu)模塊中的樹形結(jié)構(gòu),并且在其之間進(jìn)行數(shù)據(jù)同步;第三轉(zhuǎn)換模塊,用于將數(shù)據(jù)模型中的各對(duì)象轉(zhuǎn)換為畫布中的圖像;序列化模塊,用于將數(shù)據(jù)模型轉(zhuǎn)換為XML配置文件,并對(duì)其存儲(chǔ);解析模塊,用于解析XML配置文件,將解析出的各標(biāo)簽的屬性值賦給數(shù)據(jù)模型中與各標(biāo)簽對(duì)應(yīng)的對(duì)象的屬性變量。本發(fā)明簡(jiǎn)單、方便地對(duì)微動(dòng)畫產(chǎn)品中各對(duì)象元素進(jìn)行配置。
文檔編號(hào)G06T13/00GK102289834SQ20111025336
公開日2011年12月21日 申請(qǐng)日期2011年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者呂子茹 申請(qǐng)人:北京瑞信在線系統(tǒng)技術(shù)有限公司