專利名稱:用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成顯示組件的動(dòng)畫的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成顯示組件的動(dòng)畫。
背景技術(shù):
隨著計(jì)算的出現(xiàn),已經(jīng)發(fā)展了用戶界面用于允許用戶與電子內(nèi)容以及底層軟件應(yīng)用功能進(jìn)行交互。隨著計(jì)算設(shè)備和顯示功能變得更為先進(jìn),用戶期待圖形顯示器既能在功能上有效率且視覺上令人愉悅。例如,如果用戶期望將電子對象(如,照片、圖表、一段文本等)從顯示屏幕上的一個(gè)位置移動(dòng)至另一位置,用戶期待對象的有效移動(dòng),且用戶還將會期待對象的視覺上令人愉悅(或者甚至是有趣的)的移動(dòng)。作為另一個(gè)示例,如果用戶在用戶界面中的各處之間導(dǎo)航,用戶期待這些空間之間的流動(dòng)。提供這樣的圖形顯示功能需要豐富的處理和顯示器動(dòng)畫能力。本發(fā)明正是對于這些和其他考慮事項(xiàng)而做出的。
發(fā)明內(nèi)容
通過提供用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成的顯示組件的動(dòng)畫,本發(fā)明的各實(shí)施例解決了上述和其他問題。根據(jù)各實(shí)施例,用于動(dòng)畫顯示圖形用戶界面的計(jì)算機(jī)生成的顯示組件(如,按鈕、控件、工具欄、搜索功能,等)、以及各內(nèi)容項(xiàng)的顯示組件(如,文本、圖像、照片、圖表,等)的動(dòng)畫應(yīng)用(此處還被稱為動(dòng)畫引擎)。根據(jù)一個(gè)實(shí)施例,該動(dòng)畫應(yīng)用創(chuàng)建了各顯示組件的圖像(如,位像)并將這些圖像放置在動(dòng)畫層。可為各層指定動(dòng)畫行為,來指示當(dāng)各層和相關(guān)聯(lián)的顯示組件圖像的性質(zhì)變化時(shí),各層和相關(guān)聯(lián)的顯示組件圖像如何動(dòng)畫顯示或行為(如,當(dāng)層的位置性質(zhì)變化時(shí),動(dòng)畫行為可被添加至該層來指定應(yīng)該被用于移動(dòng)該層的速度、持續(xù)時(shí)間、和加速度),還有,來改變各層上的性質(zhì)來觸發(fā)動(dòng)畫(如,引起對象旋轉(zhuǎn)、振動(dòng)、調(diào)整大小,等)。為了實(shí)現(xiàn)與顯示組件移動(dòng)或其他動(dòng)畫相關(guān)聯(lián)的較高的幀速率,該動(dòng)畫應(yīng)用可使用三個(gè)處理線程,包括用戶界面(UI)線程、合成器線程、和渲染線程。根據(jù)一個(gè)實(shí)施例,通過利用聲明性標(biāo)記語言(諸如可擴(kuò)展標(biāo)記語言)用于定義顯示行為功能和性質(zhì),顯示行為可被優(yōu)化并易于控制。因此,對于所顯示的對象,可實(shí)現(xiàn)各種功能上有效且視覺上令人愉悅的顯示行為。一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)在附圖和以下描述中闡明。通過閱讀下面的具體實(shí)施例并參考相關(guān)聯(lián)的附圖,其他特征和優(yōu)點(diǎn)將變得顯而易見。要理解的是下面的具體實(shí)施例僅僅是說明性的,而不是對所要求保護(hù)的發(fā)明的限制。提供本發(fā)明內(nèi)容以便以簡化的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
圖1示出用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成的顯示組件的動(dòng)畫的系統(tǒng)體系結(jié)構(gòu)。圖2是示例性軟件應(yīng)用用戶界面的簡化框圖,示出其中包含并管理應(yīng)用功能和用戶內(nèi)容顯示組件的多個(gè)顯示框或窗口。圖3是示出與一個(gè)顯示組件相對于另一個(gè)顯示組件的移動(dòng)相關(guān)聯(lián)的動(dòng)畫的簡化框圖。圖4是示出動(dòng)畫合成樹的簡化框圖,該合成樹示出根顯示層和一些相關(guān)聯(lián)的父和子顯示層之間的關(guān)系。圖5是示出與一個(gè)顯示組件相對于另一個(gè)顯示組件的移動(dòng)相關(guān)聯(lián)的動(dòng)畫的簡化框圖。圖6是示出與一個(gè)顯示組件相對于另一個(gè)顯示組件的移動(dòng)相關(guān)聯(lián)的動(dòng)畫的簡化框圖。圖7是被顯示圖像的簡化框圖,用于描述可被應(yīng)用于該被顯示圖像的動(dòng)畫功能。圖8是被顯示圖像的簡化框圖,用于描述可被應(yīng)用于該被顯示圖像的動(dòng)畫功能。圖9是被顯示圖像的簡化框圖,用于描述可被應(yīng)用于該被顯示圖像的動(dòng)畫功能。圖10是被顯示圖像的簡化框圖,用于描述可被應(yīng)用于該被顯示圖像的動(dòng)畫功能。圖11是多網(wǎng)格位圖的簡化框圖,用于描述在顯示對象的動(dòng)畫過程中的縮放功能。圖12是顯示組件(或紋理)集的簡化框圖,其可包括可被獨(dú)立顯示的多個(gè)顯示組件。圖13是虛擬顯示組件或紋理的簡化框圖,包括取決于動(dòng)畫顯示要求可見或不可見的一組小塊。圖14是被顯示圖像的簡化框圖,用于描述可被應(yīng)用于該被顯示圖像的動(dòng)畫功能。圖15A和15B是示出子顯示組件或?qū)ο笙鄬τ诟革@示組件或?qū)ο蟮膭?dòng)畫的簡化框圖。圖16是示出子顯示組件或?qū)ο笙鄬τ诟革@示組件或?qū)ο蟮膭?dòng)畫的簡化框圖。圖17是說明用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成的顯示組件的動(dòng)畫的方法。圖18是可用來實(shí)施本發(fā)明的各實(shí)施例的計(jì)算設(shè)備的簡化框圖。圖19A和19B是可用來實(shí)施本發(fā)明的各實(shí)施例的移動(dòng)計(jì)算設(shè)備的簡化框圖。圖20是可在其中實(shí)施本發(fā)明的各實(shí)施例的分布式計(jì)算系統(tǒng)的簡化框圖。
具體實(shí)施例方式如前簡述,本發(fā)明的各實(shí)施例涉及計(jì)算機(jī)生成的用戶界面和內(nèi)容項(xiàng)的顯示組件的動(dòng)畫。以下具體實(shí)施方式
參考各個(gè)附圖。只要可能,就在附圖和以下描述中使用相同的附圖標(biāo)記來指示相同或相似的元件。盡管可能描述了本發(fā)明的實(shí)施例,但修改、改編、以及其他實(shí)現(xiàn)是可能的。例如,可對附圖中所示的元素進(jìn)行置換、添加、或修改,并且可通過對所公開的方法置換、重新排序、或添加階段來修改本文中所描述的方法。因此,下文的詳細(xì)描述不限制本發(fā)明,相反,本發(fā)明的合適范圍由所附權(quán)利要求來限定。根據(jù)各實(shí)施例,當(dāng)圖形用戶界面或內(nèi)容項(xiàng)的顯示組件(此處也稱為“紋理”)被動(dòng)畫顯示(如,移動(dòng)、旋轉(zhuǎn)、調(diào)整大小、延展、等),期望的是提供平滑的且視覺上令人愉悅的功能。例如,如果使用文字處理或其他類似應(yīng)用,用戶可啟動(dòng)功能工具欄的實(shí)例用于訪問一個(gè)或多個(gè)功能按鈕或控件。根據(jù)各實(shí)施例提供的期望的動(dòng)畫可包括平滑地將工具欄滑動(dòng)到位同時(shí)平滑地將用戶內(nèi)容(如,文檔)移動(dòng)到工具欄下,而不是突然低將工具欄顯示在該內(nèi)容上方。舉另一個(gè)示例,如果用戶從多功能應(yīng)用的電子郵件功能變化到日歷功能,期望的動(dòng)畫可包括郵件界面滑動(dòng)觸視野同時(shí)日歷界面滑動(dòng)入視野。如下文詳細(xì)描述地,根據(jù)各實(shí)施例,動(dòng)畫應(yīng)用或引擎創(chuàng)建了各顯示組件的圖像(如,位像)并將這些圖像放置在動(dòng)畫層上??蔀楦鲗又付▌?dòng)畫行為,用于當(dāng)各層的性質(zhì)變化時(shí)(如,包含在層上的對象的移動(dòng))指示各層和相關(guān)聯(lián)的顯示組件圖像如何動(dòng)畫顯示或行為,以及,來改變各層上的性質(zhì)從而觸發(fā)動(dòng)畫(如,引起對象旋轉(zhuǎn)的動(dòng)畫)。為了實(shí)現(xiàn)較高的幀速率,該動(dòng)畫應(yīng)用可使用三個(gè)處理線程,包括用戶界面(UI)線程、合成器線程、和渲染線程。通過利用用于定義顯示行為功能和性質(zhì)的聲明性標(biāo)記語言(諸如可擴(kuò)展標(biāo)記語言),顯示行為可被優(yōu)化并控制。
圖1示出用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成的顯示組件的動(dòng)畫的系統(tǒng)體系結(jié)構(gòu)。系統(tǒng)100包括具有計(jì)算機(jī)顯示屏幕表面110的計(jì)算機(jī)顯示屏幕105,該屏幕表面用于顯示與用戶內(nèi)容和/或軟件應(yīng)用用戶界面渲染相關(guān)聯(lián)的一個(gè)或多個(gè)圖形顯示組件。根據(jù)各實(shí)施例,計(jì)算機(jī)顯示屏幕105是與各種合適的計(jì)算設(shè)備(將在下文參考圖18到20而描述)相關(guān)聯(lián)的說明性計(jì)算機(jī)顯示屏幕。在顯示表面110上顯示示例性軟件應(yīng)用用戶界面和示例性相關(guān)聯(lián)的用戶內(nèi)容。用戶界面115示例的是各種軟件應(yīng)用可用的用戶界面和相關(guān)聯(lián)的用戶內(nèi)容,各種軟件應(yīng)用例如,文字處理應(yīng)用、電子數(shù)據(jù)表應(yīng)用、幻燈片展示應(yīng)用、電子郵件應(yīng)用、筆記本應(yīng)用、日歷應(yīng)用,等。即,用戶界面115示例的是可被顯示在計(jì)算機(jī)可用的顯示表面110上根據(jù)相關(guān)聯(lián)的軟件應(yīng)用功能用于查看和使用的任何說明性圖形顯示組件。如圖1中所示,用戶界面115示例的是文字處理應(yīng)用用戶界面,其具有多個(gè)功能控件120、服務(wù)窗格125、和用戶內(nèi)容顯示區(qū)域130。正如所應(yīng)該理解的,所說明的用戶界面115僅是示例性的目的,且該界面并不對可根據(jù)此處描述的本發(fā)明的各實(shí)施例所顯示并管理的圖形顯示組件的數(shù)量和類型加以限制。動(dòng)畫引擎160示例的是使用基于行為的動(dòng)畫啟用軟件應(yīng)用用戶界面(UI)(如,按鈕、控件、搜索功能、幫助功能、菜單、工具欄等)和用戶內(nèi)容(如,文檔、照片、圖像、圖表等)的動(dòng)畫的說明性的軟件應(yīng)用。動(dòng)畫引擎160啟用顯示層的創(chuàng)建,在該顯示層上可被放置諸如代表各顯示組件的位圖之類的顯示圖像。此外,動(dòng)畫引擎160用于指定動(dòng)畫行為,當(dāng)各顯示層的性質(zhì)變化時(shí)該動(dòng)畫行為指示各顯示層應(yīng)該如何動(dòng)畫顯示,且該動(dòng)畫行為改變各層上的性質(zhì)從而觸發(fā)動(dòng)畫。仍然參看圖1,為了能以較高的動(dòng)畫幀速率啟用平滑的動(dòng)畫,該動(dòng)畫引擎使用三個(gè)處理線程165、170、175。UI線程165是處理線程,使用該處理線程,各顯示層被創(chuàng)建且顯示圖像(如,位圖)被添加。此外,Π線程165負(fù)責(zé)處理添加至各層的動(dòng)畫行為(如,對象移動(dòng)、調(diào)整大小、對于其他對象移動(dòng)的反應(yīng)、等)以及改變各層上的性質(zhì)從而調(diào)度動(dòng)畫。例如,對于文字處理應(yīng)用,Π線程165可負(fù)責(zé)在顯示層上畫出文檔,將鼠標(biāo)指針放在該文檔上,且然后設(shè)置鼠標(biāo)上的性質(zhì)來允許鼠標(biāo)指針圍繞該文檔的移動(dòng)。合成器線程170是負(fù)責(zé)用于從UI線程接收顯示層和性質(zhì)變化的處理線程。這個(gè)合成器線程使得沒有動(dòng)畫顯示的所有層變平(flatten)為一層,并執(zhí)行所要求的處理來動(dòng)畫顯示這些各層(如,放置在文字處理文檔上移動(dòng)鼠標(biāo)指針的數(shù)據(jù))。一旦該合成器線程確定了被要求調(diào)度動(dòng)畫的所有信息,它將這個(gè)信息放入通信(此處也被稱為“CompNode (計(jì)算節(jié)點(diǎn))”),該通信被發(fā)送至渲染線程175。渲染線程175從合成器線程170處接收通信,該通信包括要被動(dòng)畫顯示的所有各層和有關(guān)如何動(dòng)畫顯示這些層的信息。由于確定如何動(dòng)畫顯示這些層的計(jì)算在合成器線程上被計(jì)算,通過確定這個(gè)信息,渲染線程未被阻塞,且渲染線程自由地以較高幀速率來動(dòng)畫顯示。即,由于合成器線程所執(zhí)行的處理,渲染線程被釋放從而快速地向顯示屏幕110畫出顯示組件,用于以更高的幀速率顯示相關(guān)聯(lián)的動(dòng)畫。為了描述此處描述的動(dòng)畫功能,圖2示出與所顯示的文字處理文檔相關(guān)聯(lián)的示例性所顯示的文字處理應(yīng)用用戶界面,其中所顯示的用戶界面組件的每一個(gè)包含多個(gè)顯示組件。例如,用戶界面115可以是說明性的文字處理文檔。顯示在計(jì)算機(jī)屏幕表面110上的每一個(gè)顯示組件可被顯示為單個(gè)顯示對象或顯示對象的集合。根據(jù)一個(gè)實(shí)施例,內(nèi)容項(xiàng)可被顯示在顯示框或窗口中,其中一組顯示組件可被組織從而提供軟件應(yīng)用功能和相關(guān)聯(lián)的用戶內(nèi)容的期望顯示。參看圖2,用戶界面115包括頂層顯示框或窗口 280,且包括多個(gè)分或子顯示框或窗口 285、290、295。例如,軟件應(yīng)用功能按鈕或控件的集合120可被顯示在子顯示框或窗口 285上,用戶內(nèi)容130可被顯示在亞或子顯示框或窗口 290中,且與服務(wù)窗格 125相關(guān)聯(lián)的功能和內(nèi)容(如,搜索功能、幫助功能、信息功能,等)可被顯示在亞或子顯示框或窗口 295中。如應(yīng)該理解的,圖2中的示例性文字處理用戶界面和相關(guān)聯(lián)的用戶數(shù)據(jù)是僅為了示例和說明性且并不是對于可根據(jù)本發(fā)明的各實(shí)施例被顯示并管理的用戶界面和相關(guān)聯(lián)的用戶數(shù)據(jù)的數(shù)量和類型的限制。如上簡述,為了如圖2中所示生成、渲染、和動(dòng)畫顯示顯示組件(如,鼠標(biāo)指針從功能按鈕/控件框285到內(nèi)容框290的移動(dòng)的動(dòng)畫),動(dòng)畫引擎160,經(jīng)由處理線程165、170、175在各層上創(chuàng)建顯示層、渲染(畫出)可視顯示組件(元素)、在要求的情況下將各層合成在一起、且動(dòng)畫顯示各層用于提供所期望的動(dòng)畫。根據(jù)一個(gè)實(shí)施例,動(dòng)畫引擎160包括合成器應(yīng)用171,其用作合成器線程170的一部分,將來自各源的可視顯示組件(紋理)放在一起來創(chuàng)建可被動(dòng)畫顯示的組合的場景。例如考慮圖1、2中所示的功能按鈕/控件欄120。每一個(gè)按鈕或控件可位于獨(dú)立的層中。UI線程創(chuàng)建所有獨(dú)立的各層并將所有顯示按鈕(顯示組件)放在各層上。然后UI線程將各層發(fā)送至合成器線程,其中合成器應(yīng)用170將所有的層組裝在一起成為場景,其代表了工具欄和相關(guān)聯(lián)的按鈕/控件120。更特定地,場景是可被用戶創(chuàng)建層主控機(jī)(下述)、顯示層、顯示組件(紋理)和其他合成器應(yīng)用對象的對象。每一個(gè)Π線程165具有一個(gè)場景,代表了與該線程相關(guān)聯(lián)的合成器應(yīng)用171的狀態(tài)。該場景可提供使得發(fā)生在場景的線程上的所有動(dòng)畫起作用的功能。動(dòng)畫引擎160客戶機(jī)(如,要求動(dòng)畫的應(yīng)用)可為包括它們想要?jiǎng)赢嬶@示的每一個(gè)線程選擇一個(gè)場景對象。如圖2中所示,每一個(gè)Π線程可包括多個(gè)顯示框或窗口 280、285、290、295?!罢w場景” 280可包括在線程上所管理的所有顯示框或窗口。此外,可使用場景用于批量化要被同時(shí)調(diào)度的動(dòng)畫,例如,顯示在“代辦”列表中的兩個(gè)項(xiàng)的動(dòng)畫。如上所述,可在給頂層上設(shè)置動(dòng)畫性質(zhì)用于使得該層動(dòng)畫顯示。批量化動(dòng)畫的示例可包括在其中一個(gè)顯示組件被移動(dòng)至一個(gè)位置,且然后其他顯示組件必須移動(dòng)出該層或相應(yīng)地響應(yīng)的情況下,在各層上重新放置顯示組件。為了完成這些示例性移動(dòng),顯示組件的位置被設(shè)置且批量化動(dòng)畫允許對包含不同顯示組件的所有這些不同各層的位置設(shè)置多個(gè)不同性質(zhì),從而所有各層可在同時(shí)被動(dòng)畫顯示。還可使用該場景用于啟用和停用場景中的所有動(dòng)畫和用于接收有關(guān)該場景中的動(dòng)畫的提醒。根據(jù)各實(shí)施例,動(dòng)畫可在場景級別(即,停用場景中的所有動(dòng)畫)、在層主控機(jī)級別(即,停用與層主控機(jī)相關(guān)聯(lián)的所有動(dòng)畫)、以及以單獨(dú)基礎(chǔ),被停用。其中顯示與軟件應(yīng)用功能相關(guān)聯(lián)的顯示組件(如,按鈕或控件)或其中顯示用戶數(shù)據(jù)(如,數(shù)據(jù)、圖像等)的每一個(gè)顯示框或窗口 280、285、290、295,可經(jīng)由管理組件(此處有時(shí)稱為層主控機(jī))來管理。根據(jù)各實(shí)施例,層主控機(jī)是接管包含在顯示框或窗口 280、285、290、285中的各顯示組件的渲染的對象。層主控機(jī)還可創(chuàng)建根層(下述)。在場景中可存在多個(gè)層主控機(jī)。返回參看圖2,根據(jù)各實(shí)施例,可為每一個(gè)顯示框或窗口 280、285、290、295創(chuàng)建一個(gè)層主控機(jī)來啟用動(dòng)畫引擎來引起在用戶界面的每一個(gè)框中所有顯示組建的渲染。為允許層主控機(jī)來管理每一個(gè)框或窗口,包括關(guān)閉、調(diào)整窗口大小、窗口渲染(繪制)、窗口可見性;對于所顯示的組件或紋理的位置變換、和作用在框或窗口上的其他編輯功能,框/窗口和相關(guān)聯(lián)的層主控機(jī)必須被在同一個(gè)線程上被創(chuàng)建。根據(jù)各實(shí)施例,關(guān)于創(chuàng)建,層主控機(jī)可自動(dòng)創(chuàng)建與層主控機(jī)的客戶機(jī)區(qū)域(如,由層主控機(jī)管理的顯示框或窗口)的位置和尺寸匹配(在根層的壽命內(nèi)有效)的根層。層主控機(jī)提供方法來檢索其相關(guān)聯(lián)的根層。這允許動(dòng)畫引擎160添加紋理至根層或添加子層至根層??墒褂米訉觼韯?dòng)畫顯示顯示框架或窗口中的內(nèi)容。顯示框或窗口中創(chuàng)建的任何層將被裁減至這個(gè)顯示框或窗口的邊界。如果該層移動(dòng)到顯示框或窗口的邊界之外,其將不可見。下文將給出裁減的附加討論。如此處所述,層或顯示層是可被動(dòng)畫顯示的合成樹(下述)中的對象或節(jié)點(diǎn)。根據(jù)各實(shí)施例,顯示組件或紋理被放置在動(dòng)畫的層上。即,顯示組件是它們被放置在其上的層的性質(zhì),代表了將被渲染給顯示屏幕的對象。在一些情況下,顯示組件是位圖形式,可被渲染給顯示屏幕作為相關(guān)聯(lián)的顯示組件的代表。如圖2中所示,例如,“打印”按鈕可被顯示為位圖且可以是包含在文字處理應(yīng)用用戶界面的工具欄框285中的層的性質(zhì)。因此,“打印”按鈕可以是渲染在框285的根層的子層上的位圖。默認(rèn)地,在各層沒有顯示組件或紋理時(shí),各層可以是透明的。可使用透明的層(不具有所應(yīng)用的顯示組件)來管理其他各層。即,可使用透明層作為父層來容納(hold)—個(gè)或多個(gè)子層(如,其上放置兩個(gè)按鈕層的透明層)。這允許對于父層的操作(如,父層的移動(dòng)),來引起所包括的子層的動(dòng)畫。例如,容納兩個(gè)子按鈕層的透明父層的移動(dòng)允許同時(shí)移動(dòng)兩個(gè)子按鈕層。舉另一個(gè)示例,如果用戶在文字處理文檔中畫出兩個(gè)形狀,這兩個(gè)形狀可被畫在獨(dú)立的子層上,這兩個(gè)獨(dú)立子層可依序被放在透明父層上。然后,父層的動(dòng)畫(如,移動(dòng))可一起移動(dòng)這兩個(gè)子層和相關(guān)聯(lián)的形狀。如上所述,一旦層主控機(jī)和根層已經(jīng)被創(chuàng)建,子層可被定義為可相關(guān)于其父層而被動(dòng)畫顯示。動(dòng)畫引擎并沒有對在場景中可被創(chuàng)建的層的數(shù)量提出限制。然后參看圖3,考慮例如黑色圓圈320跨越灰色背景310的動(dòng)畫。對于圖示于圖3的頂部的圓圈/背景組合,為了動(dòng)畫顯示圓圈從左到右移動(dòng),需要兩層,包括圓圈320的一層和方形灰色背景310的一層。在這個(gè)情況下,灰色背景310可被畫到根層,從而,其再次變成層主控機(jī)的大小。且然后,第二層可就是圓圈320的大小,具有畫在其上的黑色圓圈的紋理。然后,通過將包含圓圈320的層重新放置,圓圈320表現(xiàn)為移動(dòng)跨越灰色背景。根據(jù)各實(shí)施例,包含黑色圓圈320的層可具有動(dòng)畫性質(zhì),例如,指令層320跨越背景310的移動(dòng)的速度、持續(xù)時(shí)間、和加速度。例如,可施加性質(zhì)要求圓圈在200毫秒內(nèi)從第一位置移動(dòng)到第二位置,包括在移動(dòng)過程中的加速。對于圖示于圖3底部的圓圈/背景組合330,該灰色背景可被畫在根層上,該根層是在層主控機(jī)創(chuàng)建時(shí)被自動(dòng)創(chuàng)建的。需要?jiǎng)?chuàng)建可在其上畫出圓圈320的第二層。合成樹是單個(gè)層主控機(jī)中的各層的樹,該樹代表了該合成器將什么渲染在與該層主控機(jī)相關(guān)聯(lián)的顯示框或窗口中。在給定場景中可存在多個(gè)合成樹,因?yàn)閳鼍翱砂鄠€(gè)層主控機(jī)。合成樹中的層的位置代表了它將渲染給屏幕的次序,除非對于層另外指定了次序。用前序遍歷繪出樹。根據(jù)各實(shí)施例,層被渲染給屏幕的排序(此處也被稱為Z-排序)指令(dictate) 了在父和子層之間渲染的放置和時(shí)序。例如,子層總是渲染在它們的父層的頂部,且同一個(gè)父層的具有較高指數(shù)(index)的子層將渲染在具有較低指數(shù)的子層的頂部。即,指數(shù)可被施加給子層來表示相對于同一父層的其他子層,它們被渲染給屏幕的排序。根據(jù)各實(shí)施例,各層可具有排序性質(zhì)(如,Z-排序),如果設(shè)置該性質(zhì)的話,可基于其指數(shù)來重寫(override)該層的排序。如果同一父層的兩個(gè)層被給予相同的Z-排序,它們以指數(shù)來渲染,其中較低指數(shù)的子層被渲染在較高指數(shù)的子層之下。如果能透視(perspective),各層還可具有z_位置,表示一層相對于另一層的深度。Z-位置可重寫具有相同父層的各子層的Z-排序。圖4是示出動(dòng)畫合成樹的簡化框圖,該合成樹示出根顯示層和一些相關(guān)聯(lián)的父和子顯示層之間的關(guān)系。樹400表示將由合成器應(yīng)用171渲染給屏幕的各層。根層410位于合成樹的頂部,且可具有子層,但是不具有父層。根層410的子層415、420、425可包括一個(gè)或多個(gè)子層。在圖4所示的情況下,層420具有兩個(gè)子層430、435。當(dāng)父層移動(dòng)時(shí),它們的子層將隨之移動(dòng)。子層,諸如子層430、435,可被添加至合成樹中的任意層。在合成樹中,各子層相對于父層放置和移動(dòng)。如上所述,當(dāng)各子層被添加至父層時(shí),它們可接收從指數(shù)零
(O)開始的指數(shù),來指令它們相對于其他子層的渲染。如圖4中所示,層A (415)、B (420)、和C (425)是根層410的子層,且各自具有指數(shù)0、1、和2。因此,由于所施加的指數(shù),層A、B、和C將被順序地渲染。類似地,層D (430)和E (435)是父層B (420)的子層,且將在父層B的渲染后立刻被渲染,并且渲染次序?yàn)槭紫仁菍覦、跟著是層E。上述的一個(gè)示例可包括如圖2中所示的在顯示框280中的功能按鈕120。根層可相關(guān)聯(lián)于顯示框280且可由層主控機(jī)管理。每一個(gè)按鈕“文件(file)”、“編輯(edit)”、“打印(print) ”、和“格式(format) ”可以是根層的子層,且可分別對于“文件”具有指數(shù)0、“編輯”具有指數(shù)1、“打印”具有指數(shù)2、且“格式”具有指數(shù)3。因此,當(dāng)顯示框280被渲染時(shí),“文件”、“編輯”、“打印”、和“格式”按鈕將根據(jù)它們各自指數(shù)按照順序被渲染。參看圖5,考慮動(dòng)畫顯示黑色圓圈320跨越灰色背景310的另一個(gè)示例。在這個(gè)示例中,灰色背景310可被放置在根層510上,且黑色圓圈320可被放置在根層的子層520上。然后,基于如上所述的放置排序和移動(dòng)排序,黑色圓圈可被放置并相對于根層移動(dòng)。根據(jù)各實(shí)施例,可將多個(gè)方法應(yīng)用于各層,用于管理各層相對彼此的放置和移動(dòng)。以下是可被應(yīng)用于各層的多個(gè)方法的列表。如所應(yīng)該了解的,以下示例性方法并不是可被發(fā)展并可被施加至各層用于放置、移動(dòng)、添加、移除、和用于獲取有關(guān)各層的信息的數(shù)量眾多的方法的窮盡。AddLayer (添加層)方法向從該層調(diào)用該方法的那層添加特定層作為子層。例如,向?qū)覤調(diào)用AddLayer,如圖4中所示,將以指數(shù)2添加子層至B。RemoveLayer (移除層)方法將特定子層從調(diào)用子層的那一層移除。這個(gè)層將從合成樹移除且刪除。該方法提供了選項(xiàng)來將包含在所移除的層中的顯示組件或紋理變平至其父層。InsertLayerAtIndex(以指數(shù)插入層)方法以特定指數(shù)向調(diào)用該方法的那層插入子層。例如,向?qū)覤調(diào)用InsertLayerAtIndex I,如圖4中所示,將以指數(shù)I添加子層至B,在層D和E之間。層E的指數(shù)將變?yōu)?。InsertLayerAfter (在…后插入層)方法在特定層后插入層,或,若特定層不存在,則在開始處插入層。InsertLayerBefore (在…前插入層)方法在特定層前插入層,或,若特定層不存在,則在末尾處插入層。GetChildLayerCount (獲得子層計(jì)數(shù))方法返回層的子層數(shù)量。GetLayer (獲得層)方法返回位于特定指數(shù)的子層。GetParent (獲得父層)方法返回層的父層。GetLayerHost (獲得層主控機(jī))方法返回層的層主控機(jī)。 仍然參看圖4,根據(jù)各實(shí)施例,在任何給定時(shí)刻,對于相關(guān)聯(lián)的UI線程165而言,合成器的層樹400的當(dāng)前狀態(tài)是未知的。所以,層樹不可由合成器應(yīng)用171代表。至層樹的方法調(diào)用,如上所述,將最終受到合成器應(yīng)用171的影響,除非對于層樹的稍后的調(diào)用打斷了它們。例如,如果方法調(diào)用重新調(diào)整層的大小,調(diào)用層可期待,它將最終重新調(diào)整為特定大小,除非另一個(gè)UI側(cè)方法調(diào)用將其大小調(diào)整至不同尺寸、將它隱藏、移除它對于當(dāng)前父層的關(guān)系、或者打斷了這個(gè)命令。主張(maintain)整個(gè)層的樹的所有權(quán)(ownership)的UI 線程165在合成器應(yīng)用171應(yīng)該合成什么的方面具有權(quán)限,不過給定調(diào)用的完成次序可被改變或打斷。根據(jù)各實(shí)施例,這允許對Π線程165不被阻塞以允許用戶另一個(gè)位置點(diǎn)擊或以其他方式與顯示屏幕交互,即使動(dòng)畫正在播放。因此,通過打斷這個(gè)狀態(tài),用戶的點(diǎn)擊或其他交互可在其他位置完成。在這樣的情況下,當(dāng)前運(yùn)行的動(dòng)畫被覆蓋且跟隨新的性質(zhì)值。如此處所述,用戶界面和用戶內(nèi)容組件(例如,按鈕、文本框、文本項(xiàng)、圖表、照片、圖像等)的顯示和動(dòng)畫,通過將顯示組件或紋理放置在用于渲染在顯示屏幕上的各層上來完成。如果沒有包括顯示組件的層被渲染至顯示屏幕,則該層是透明的。沒有顯示組件或紋理的層可被用于歸類、轉(zhuǎn)換、和裁剪子層。放在用于渲染的各層上的顯示組件或紋理可以是多種形式和多種格式的。例如,顯示組件可以是根據(jù)多個(gè)格式、純色填充、或梯度創(chuàng)建和格式化的位圖。梯度組件或紋理可以是線性或徑向地填充的。相同的顯示組件或紋理可被設(shè)置在多個(gè)不同層,且顯示組件可被放大/縮小來配合層的大小。根據(jù)各實(shí)施例,動(dòng)畫引擎160可接收由不同應(yīng)用創(chuàng)建且根據(jù)不同格式創(chuàng)建的顯示組件或紋理,用于顯示和動(dòng)畫。即,如果動(dòng)畫引擎從根據(jù)一個(gè)渲染技術(shù)操作的一個(gè)軟件應(yīng)用(如,電子表格應(yīng)用)接收一個(gè)對象,并從第二個(gè)軟件應(yīng)用(如,文字處理應(yīng)用)接收第二個(gè)對象,動(dòng)畫引擎可將這兩個(gè)對象轉(zhuǎn)換為動(dòng)畫引擎160所使用的渲染技術(shù),用于分解在不同層上用于由動(dòng)畫引擎渲染?,F(xiàn)在參看圖6,考慮其中黑色圓圈320跨越灰色背景310被移動(dòng)的示例性動(dòng)畫?;疑尘?10的紋理性質(zhì)被設(shè)置在根層610上,且黑色圓圈320的紋理性質(zhì)被設(shè)置在子層620上。根據(jù)各實(shí)施例,顯示組件或紋理不具有線程親和性,這意味著顯示組件可在一個(gè)Π線程160上被創(chuàng)建且可在另一個(gè)Π線程160上被使用。然而,根據(jù)一個(gè)實(shí)施例,顯示組件不可同時(shí)被多個(gè)線程所使用?,F(xiàn)在參看圖7-10,為指定顯示組件如何延展至其上放置顯示組件的層的邊界,可采用顯示組件或紋理延展模式。參看圖7,“延展”模式的使用允許顯示組件715垂直和水平均被延展來充滿該層710。參看圖8,“平鋪(tile)”模式允許顯示組件815維持其大小,但是允許以平鋪顯示格式被復(fù)制來充滿其層810。參看圖9,“水平延展”模式允許顯示組件915水平地延展且垂直地平鋪來充滿該層910。參看圖10,“垂直延展”模式允許顯示組件1015垂直地延展且水平地平鋪來充滿該層1010。如應(yīng)該了解的,圖7-10中所示的延展模式僅為了示例目的,且并不是對于可被采用的其他延展模式(如,對角線延展,等)的限制。根據(jù)各實(shí)施例,當(dāng)向?qū)犹砑语@示組件時(shí),該層將被自動(dòng)地調(diào)整大小至該顯示組件的大小,假設(shè)其僅在每一維的一側(cè)上受限。如果層在任何一維中雙向受限、或者如果顯示組件類型并沒有提供大小,這可被忽略。在這個(gè)情況下,顯示組件將不被延展且會裝配在這層的邊界中。然而,如果這個(gè)層后來被重新調(diào)整大小,在延展模式應(yīng)用于該層后,顯示組件將延展以配合該層?,F(xiàn)在參看圖11,根據(jù)各實(shí)施例,動(dòng)畫引擎160可采用九柵格位圖配置來提供參看圖7-10的在上文所描述的延展和移動(dòng)模式。如柵格1110、1120、和1130中所示地設(shè)置九柵格邊緣,當(dāng)被調(diào)整大小時(shí),允許單個(gè)顯示組件(如,位圖)的各部分被不同地比例縮放,從而允許如上所示的各種延展和移動(dòng)。例如,參看柵格1120,當(dāng)九柵格的邊緣被設(shè)置時(shí),各邊角可完全不比例縮放,頂部和底部區(qū)域僅水平地比例縮放,左邊和右邊區(qū)域僅垂直地被比例縮放,且中間區(qū)域在水平和垂直均比例縮放。根據(jù)各實(shí)施例,可結(jié)合九柵格邊緣使用延展模式,其中被比例縮放的位圖中僅是有些部分可受到影響。例如,具有圓形邊角的用戶界面上的按鈕可被啟用,其中按鈕(顯示對象)的邊角不比例縮放,即使按鈕的中間比例縮放了。因此,上述延展模式可結(jié)合圖11中所示的九柵格邊緣使用,來實(shí)現(xiàn)期望的顯示結(jié)果。根據(jù)一個(gè)實(shí)施例,九柵格邊緣的顯示組件的默認(rèn)狀態(tài)全部被設(shè)為0,如柵格1110中所示,且其延展模式被設(shè)為“延展(stretch)”,如上述圖7中所示。圖12示出一起被分組在顯示組件組或集中的顯示組件或紋理的集合。如此處所述,對于給定的被顯示的用戶界面或內(nèi)容項(xiàng),可生成并顯示多個(gè)獨(dú)立的顯示組件(此處也被稱為紋理)1210、1220、1230、1240、1250。根據(jù)一個(gè)實(shí)施例,為了減少與獨(dú)立顯示組件或紋理的生成和顯示相關(guān)聯(lián)的時(shí)間的影響,一組顯示組件或紋理可被組裝在一起成為單個(gè)顯示組件組或集1200。例如,返回參看圖2,顯示在示例性用戶界面中的功能框中、窗口、或工具欄的每一個(gè)獨(dú)立按鈕或控件120,可被一起分組為單個(gè)顯示組件集。然后,根據(jù)各實(shí)施例,使用如圖12中所示的顯示組件或紋理集,允許動(dòng)畫引擎160的性能優(yōu)化。例如,替代具有100個(gè)20X20位圖,一個(gè)較大表面(集)可被創(chuàng)建,其包含所有的20x20位圖。然后,動(dòng)畫引擎160可從該較大表面的不同部分渲染不同的顯示組件。這樣使用集1200,避免了獨(dú)立的顯示組件創(chuàng)建時(shí)間(如,多出1-20毫秒來完成)。如所應(yīng)該了解的,不同的驅(qū)動(dòng)器可具有不同的存儲器分配策略,而有些具有最小的分配,意味著如果顯示組件小于最小分配,圖形顯示器仍為給定顯示組件分配最小量的顯示器。因此,分配至給定集的所有顯示組件將從一個(gè)較大集表面被渲染,而不是與每一個(gè)顯示組件相關(guān)聯(lián)的很多不同表面被渲染。圖13是虛擬顯示組件或紋理的簡化框圖,包括取決于顯示要求可見或不可見的一組小塊。在很多情況下,一項(xiàng)應(yīng)用可具有其大小大于視頻卡所允許的紋理的最大尺寸的單個(gè)層。根據(jù)各實(shí)施例,如果顯示組件或紋理非常大,且用戶不需要看見整個(gè)顯示組件,則沒有必要渲染整個(gè)顯示組件且使用所有所要求的存儲器空間和處理資源。例如,如果用戶將文字處理文檔放大至500%放大倍數(shù),以使用戶僅能看到文檔的小部分,則沒有必要生成以及存儲不在視野中的文檔的部分的顯示組件。如圖13中所示,虛擬顯示組件或紋理1300被生成,代表了整個(gè)顯示組件(如,文檔),不過其被分為多個(gè)小塊1310、1320。圖13中所示的小塊僅是一個(gè)示例,且根據(jù)這個(gè)實(shí)施例,可使用很多不同的小塊形狀和布局。根據(jù)一個(gè)實(shí)施例,小塊可形如正方向的小塊。根據(jù)各實(shí)施例,動(dòng)畫引擎160命令客戶機(jī)應(yīng)用(如,文字處理應(yīng)用)僅畫出在可見區(qū)域1330中的那些小塊。當(dāng)在可視區(qū)域1330外的小塊開始進(jìn)入視野(如,經(jīng)由滾輪或縮放),動(dòng)畫引擎調(diào)用負(fù)責(zé)渲染的應(yīng)用并要求附加小塊的渲染。如此處所述,為了動(dòng)畫顯示給定顯示組件,包括組件的放置、組件的移動(dòng)、組件的調(diào)整大小等,通過改變在其上部署顯示組件用于渲染的層的一個(gè)或多個(gè)動(dòng)畫性質(zhì)完成。根據(jù)各實(shí)施例,可施加多個(gè)動(dòng)畫性質(zhì)至給定顯示層??墒┘游恢眯再|(zhì),從而顯示組件和層位置受控于指定層如何相對其父層被放置的限制。旋轉(zhuǎn)性質(zhì)可被施加,其可指定二維顯示和三維顯示中的旋轉(zhuǎn)。調(diào)整大小性質(zhì)可被施加,有了這個(gè)性質(zhì),可指定限制來控制如何相對于層自身或相對其父層調(diào)整層的大小。當(dāng)層的大小被改變時(shí),基于其相對于所改變的父層的限制的它們的限制,其子層將重新調(diào)整大小。比例縮放性質(zhì)可被施加,其允許層從特定中心點(diǎn)被重新調(diào)整大小。對層比例縮放不同于對該層重新調(diào)整大小,因?yàn)樽訉酉拗茖⒈缓雎?,使得該層與它們的父層同等地被比例縮放??梢曅孕再|(zhì)可被設(shè)置來將層渲染為可視或不可視。這不可影響不透明性。不透明性質(zhì)可被設(shè)置為光被允許穿過層行進(jìn)的程度。這個(gè)性質(zhì)可被動(dòng)畫顯示來創(chuàng)建淡化效果。紋理性質(zhì)可允許經(jīng)由交叉淡入淡出對于顯示組件的改變。滾動(dòng)性質(zhì)可被設(shè)置來允許一層相對另一層的滾動(dòng)。縮放性質(zhì)可被設(shè)置來允許如此處參看圖7-11和13所描述的縮放效果。位圖幀性質(zhì)可被設(shè)置在層上,且允許相關(guān)聯(lián)的顯示組件的動(dòng)畫。例如,空的沙漏或旋轉(zhuǎn)圓圈可包括在給定處理步驟過程中在以環(huán)循環(huán)的多個(gè)幀。在給頂層上設(shè)置性質(zhì)后,可根據(jù)不同方法執(zhí)行層的動(dòng)畫(如,移動(dòng)、調(diào)整大小、改變,等)。根據(jù)第一種方法,可在層上設(shè)置動(dòng)畫類別,其指定了可被施加至層的動(dòng)畫事件的動(dòng)畫。即,當(dāng)層被創(chuàng)建時(shí),動(dòng)畫類別可被施加至該層,指定可被施加至該層上述的動(dòng)畫性質(zhì)和當(dāng)這些性質(zhì)改變時(shí)所遵循的動(dòng)畫行為。如果層的動(dòng)畫性質(zhì)被改變,則根據(jù)由該層的類別指定的動(dòng)畫行為,該層將被動(dòng)畫顯示。根據(jù)實(shí)施例,動(dòng)畫類別、性質(zhì)、以及如何動(dòng)畫顯示這些性質(zhì)的描述,是使用諸如可擴(kuò)展標(biāo)記語言(XML)之類的聲明性標(biāo)記語言定義的。根據(jù)可選的動(dòng)畫方法,以并不是由層的性質(zhì)所指定的方式來進(jìn)行層的動(dòng)畫,隨后返回層的原始狀態(tài)。例如,如果期望的是臨時(shí)改變對象的顏色來高亮該對象,該顏色可以是臨時(shí)地變化,且然后根據(jù)施加至該層的性質(zhì),該層返回其原始狀態(tài)。例如,可根據(jù)XML構(gòu)建臨時(shí)顏色變化的描述。動(dòng)畫引擎可使得基于XML的描述被渲染,接著是返回仍施加至該層的性質(zhì)(如,返回該對象的原始顏色)。在動(dòng)畫開始之前,定義了動(dòng)畫了的開始和結(jié)束點(diǎn)(也被稱為“關(guān)鍵幀”)。根據(jù)一個(gè)實(shí)施例,關(guān)鍵幀經(jīng)由XML被描述。關(guān)鍵幀為任何給定層指定了要被動(dòng)畫顯示的有效層性質(zhì),以及應(yīng)該如何動(dòng)畫顯示這些性質(zhì)。例如,關(guān)鍵幀可指定在每一個(gè)關(guān)鍵幀的性質(zhì)的相對值、關(guān)鍵幀的時(shí)間、和應(yīng)該被用于動(dòng)畫顯示至關(guān)鍵幀所指定的相對性質(zhì)值的時(shí)序功能或加速功能??紤]例如,層從點(diǎn)A移動(dòng)至點(diǎn)B。根據(jù)這個(gè)示例,A是位于其初始性質(zhì)狀態(tài),所以可不需要關(guān)鍵幀。對于位置B,關(guān)鍵幀可被添加,其可指定該層在400毫秒內(nèi)移動(dòng)至位置B。該關(guān)鍵幀還可指定時(shí)序曲線,其給出以給定加速度的移動(dòng)。因此,這個(gè)性質(zhì)執(zhí)行將開始,根據(jù)所指定的加速度加速,并在400毫秒內(nèi)達(dá)到性質(zhì)的最終值(如,位置B )。如上所述,可開發(fā)出多種動(dòng)畫類別,且經(jīng)由諸如XML之類的聲明標(biāo)記語言描述。一旦開發(fā)了多種動(dòng)畫類別,它們可被存儲在中央儲存庫或庫中,且經(jīng)常在一個(gè)或多個(gè)顯示層中按需被再次使用?,F(xiàn)在參看圖14,描述了多個(gè)動(dòng)畫類別。然而,應(yīng)該注意的是,以下動(dòng)畫類別的列表是僅為了說明目的且并不是可被發(fā)展并應(yīng)用于層引起所期望的層的動(dòng)畫的各種其他動(dòng)畫類別的限制。然后參看圖14,動(dòng)畫類別可包括“OnShow (開啟展示)”動(dòng)畫,該動(dòng)畫在層的可見性質(zhì)被設(shè)為真時(shí)指定該層應(yīng)該如何動(dòng)畫顯示。這個(gè)類別可被施加至層1405和相關(guān)聯(lián)的顯示組件1410。當(dāng)該層1405之后成為可見時(shí),“OnShow”動(dòng)畫可被觸發(fā),使得層1405和相關(guān)聯(lián)的顯示組件410淡入視野。施加至層1405的動(dòng)畫類別還可包括“OnHide (開啟隱藏)”動(dòng)畫,該動(dòng)畫在層的可見性質(zhì)被設(shè)為假時(shí)指定該層應(yīng)該如何動(dòng)畫顯示。當(dāng)層1405的可見性被設(shè)為假時(shí),“OnHide”動(dòng)畫被觸發(fā),導(dǎo)致層1405和相關(guān)聯(lián)的顯示組件1410淡出施加至層1405的動(dòng)畫類別還可包括“OnMove (開啟移動(dòng))”動(dòng)畫,該動(dòng)畫在層的位置性質(zhì)變化時(shí)指定該層應(yīng)該如何動(dòng)畫顯示。如果層1405的位置變化,“OnMove”動(dòng)畫可被觸發(fā),使得該層動(dòng)畫顯示至其新的位置。如果施加至層1405的動(dòng)畫類別包含“OnResize (開啟重新調(diào)整大小)”動(dòng)畫,當(dāng)層的大小被改變時(shí),這個(gè)動(dòng)畫指定層應(yīng)該如何動(dòng)畫顯示,然后當(dāng)該層的大小性質(zhì)被如下變化時(shí),該層將遵循所指定的動(dòng)畫。當(dāng)該層根據(jù)其大小限制中的變化被重新調(diào)整大小時(shí),且一旦重新調(diào)整了層的大小,基于相對于遵循“OnResize”動(dòng)畫的父層的子層的被施加的限制,其子層可被重新調(diào)整大小。如果施加至層1405的動(dòng)畫類別包含“OnOpacityChanged (開啟變化透明度)”動(dòng)畫,當(dāng)層1405的透明度變化時(shí),可在層1405和相關(guān)聯(lián)的顯示組件1410上觸發(fā)這個(gè)動(dòng)畫。如果施加至層1405的動(dòng)畫類別包含“OnTextureChanged (開啟變化紋理)”動(dòng)畫,當(dāng)層的紋理變化時(shí),該動(dòng)畫指定了將被交叉淡入淡出的動(dòng)畫,當(dāng)紋理被更新時(shí),該層可在紋理之間進(jìn)行交叉淡入淡出。如果施加至層1405的動(dòng)畫類別包含“OnScale (調(diào)整比例)”動(dòng)畫,當(dāng)層的比例被改變時(shí),可觸發(fā)這個(gè)動(dòng)畫。對層比例縮放不同于重新調(diào)整大小。比例縮放允許標(biāo)識從其開始比例縮放的中間點(diǎn),且忽略限制同等地調(diào)整所有子層的比例。如果施加至層1405的動(dòng)畫類別包含“OnRotate (開啟旋轉(zhuǎn))”動(dòng)畫,當(dāng)層被選擇時(shí),可觸發(fā)這個(gè)動(dòng)畫?!癘nAlways (開啟一直)”動(dòng)畫可被包括在該類別中,該動(dòng)畫被施加至層1405來指定循環(huán)動(dòng)畫。施加至“OnAlways”事件的動(dòng)畫將暫時(shí)地由其它層事件觸發(fā)的動(dòng)畫所覆蓋。通過在層上建立動(dòng)畫或通過從該層移除定義“OnAlways”動(dòng)畫的類別,可停止“OnAlways”動(dòng)畫。“OnScroll (開啟滾動(dòng))”動(dòng)畫可被包括在類別中,其可被施加至作為滾動(dòng)層被創(chuàng)建的層。與其他層性質(zhì)類似,當(dāng)做出改變時(shí),事件被觸發(fā)。例如,當(dāng)層滾動(dòng)至新的位置,“OnSciOll”動(dòng)畫可被觸發(fā)?!癘nZoom (開啟縮放)”動(dòng)畫可被包括在類別中,其可被施加至作為滾動(dòng)層被創(chuàng)建的層1405。當(dāng)層縮放至新的位置時(shí),這個(gè)事件被觸發(fā)。根據(jù)各實(shí)施例,如果改變了當(dāng)前被動(dòng)畫顯示的層性質(zhì)的值的新動(dòng)畫被調(diào)度,新動(dòng)畫將覆蓋當(dāng)前運(yùn)行的動(dòng)畫。在這個(gè)情況下,該層將停止向著原始性質(zhì)值的動(dòng)畫顯示,且將變化為向著新的性質(zhì)值的動(dòng)畫顯示。覆蓋動(dòng)畫確保動(dòng)畫引擎160響應(yīng)于用戶輸入。例如,如果動(dòng)畫正在文檔中運(yùn)行,且用戶選擇功能鍵,諸如“打印”,這個(gè)文檔顯示組件將立即動(dòng)畫顯示進(jìn)入從屬于相關(guān)聯(lián)于所選擇的“打印”按鈕相關(guān)聯(lián)的背景中。
圖15A、15B、和16是示出子顯示組件或?qū)ο笙鄬τ诟革@示組件或?qū)ο蟮膭?dòng)畫的簡化框圖,其中例示了裁減。參看圖15A,默認(rèn)地,如果子層1520移動(dòng)至父層1510外部,它不會被裁減(即,即使超出父層邊界,子層將被顯示)。另一方面,如圖15B中所示,在子層1520上可設(shè)置性質(zhì)以使,如果子層移動(dòng)到父層1510邊界之外,對于子層的超出父層邊界的部分,該子層部分將被裁減出視野。如圖16中所示,垂直對齊的父層1610將裁減其子層1620。如此處所述,動(dòng)畫是行為,基于其中當(dāng)層性質(zhì)變化時(shí)的應(yīng)用至層的動(dòng)畫控制層的動(dòng)畫行為。如上所述,這些行為定義了可視顯示組件(元素)如何移動(dòng)、旋轉(zhuǎn)、調(diào)整大小、比例縮放、展示、隱藏、可見度變化、縮放、和滾動(dòng)。例如,字處理應(yīng)用實(shí)現(xiàn)的開發(fā)者可將動(dòng)畫行為分配給包含文本的可視元素。這些行為將定義文本如何移動(dòng)和生長(grow)。在分配了動(dòng)畫行為后,如果文字處理應(yīng)用通過移動(dòng)或重新調(diào)整大小改變了文本,這將使得文本遵循新施加的動(dòng)畫行為來自動(dòng)地動(dòng)畫顯示。根據(jù)一個(gè)實(shí)施例,施加至顯示層的動(dòng)畫行為是基于XML的?;赬ML的動(dòng)畫行為定義了時(shí)序、動(dòng)畫、和類別。圖17是說明用于提供一個(gè)或多個(gè)圖形顯示組件的動(dòng)畫或與一個(gè)或多個(gè)圖形顯示組件相關(guān)聯(lián)的動(dòng)畫的方法的流程圖。該方法1700起始于開始操作1705并繼續(xù)至操作1710, 此處動(dòng)畫引擎160的合成器應(yīng)用171為用戶界面(UI)線程165創(chuàng)建場景。根據(jù)各實(shí)施例,合成器應(yīng)用171將來自不同源的可視顯示組件或元素(此處也被稱為“紋理”)放在一起從而創(chuàng)建可被動(dòng)畫顯示的組合的場景。每一個(gè)Π線程165具有一個(gè)場景,代表了在該線程上的合成器應(yīng)用171的狀態(tài)。可使用該場景來創(chuàng)建層主控機(jī)、層、紋理、和其他合成器應(yīng)用對象。此外,該場景提供使得發(fā)生在場景的線程上的所有動(dòng)畫起作用的功能。在操作1715,合成器應(yīng)用171使用該場景來創(chuàng)建層主控機(jī),接管在場景中渲染顯示框或窗口。層主控機(jī)是負(fù)責(zé)渲染顯示框或窗口并且創(chuàng)建根層的對象。在場景中可存在多個(gè)層主控機(jī)。在操作1720,創(chuàng)建了被要求用于代表期望的用戶界面組件或內(nèi)容組件的多個(gè)層。即,創(chuàng)建了根層和被需要用于顯示所期望的顯示組件的很多的在該根層下的父層和子層。在操作1725,生成合成樹,建立了所創(chuàng)建的各層之間的關(guān)系,包括將指數(shù)分配給每一層用于確定各層的動(dòng)畫排序。通過從應(yīng)用層主控機(jī)中檢索根層以及通過添加將被動(dòng)畫顯示的層作為該根層的子層,建立了合成樹。在操作1730,顯示組件,例如按鈕、空間、文本項(xiàng)、照片、圖像、圖表等,在應(yīng)用層上被畫出。初始地,層是透明的且對于顯示表面沒有畫出任何東西。當(dāng)顯示組件被添加至層時(shí),該層的“紋理”性質(zhì)被設(shè)置。根據(jù)一個(gè)實(shí)施例,顯示組件被轉(zhuǎn)換為位圖,且位圖被畫至各應(yīng)用層。在操作1735,基于施加至父層和子層的動(dòng)畫性質(zhì),相對于父層設(shè)置子層的位置。在操作1740,動(dòng)畫類別,如上參看圖14所述地,被設(shè)置在父層和子層上。添加動(dòng)畫類別至層,將動(dòng)畫相關(guān)聯(lián)于層的變量的變化和可被動(dòng)畫顯示的事件,諸如移動(dòng)、大小變化等。在操作1745,層性質(zhì)或變量被改變(如,要求層從點(diǎn)A到點(diǎn)B的移動(dòng)的變量)。這個(gè)變化觸發(fā)了相關(guān)聯(lián)的事件(如,層的移動(dòng)),且根據(jù)施加至各層的動(dòng)畫類別定義來調(diào)度合適的動(dòng)畫。方法1700在操作1795處結(jié)束。本文描述的實(shí)施例和功能可經(jīng)許多計(jì)算系統(tǒng)來操作,包括有線和無線計(jì)算系統(tǒng)、移動(dòng)計(jì)算系統(tǒng)(如移動(dòng)電話、圖形輸入板或平板型計(jì)算機(jī)、膝上型計(jì)算機(jī)等)。此外,本文所述的實(shí)施例和功能可在分布式系統(tǒng)上操作,其中應(yīng)用功能、存儲器、數(shù)據(jù)存儲和檢索、以及各種處理功能可在諸如因特網(wǎng)或內(nèi)聯(lián)網(wǎng)之類的分布式計(jì)算網(wǎng)絡(luò)上彼此遠(yuǎn)程地操作。各種類型的用戶界面和信息可經(jīng)板載計(jì)算設(shè)備顯示器或經(jīng)與一個(gè)或多個(gè)計(jì)算設(shè)備相關(guān)聯(lián)的遠(yuǎn)程顯示單元被顯示。例如,各種類型的用戶界面和信息可在墻壁表面上被顯示和交互,各種類型的用戶界面和信息被投射在墻壁表面上。與可用于實(shí)施本發(fā)明的各實(shí)施例的許多計(jì)算系統(tǒng)的交互包括鍵擊輸入、觸摸屏輸入、語音或其他音頻輸入、姿勢輸入(其中相關(guān)聯(lián)的計(jì)算設(shè)備配備有用于捕捉和解釋用于控制計(jì)算設(shè)備的功能的用戶姿勢的檢測(如相機(jī))功能)等。圖18 — 20及相關(guān)聯(lián)的描述提供了其中可實(shí)施本發(fā)明的各實(shí)施例的各種操作環(huán)境的討論。然而,關(guān)于圖18-9所示出和討論的設(shè)備和系統(tǒng)是用于示例和說明的目的,而非對可被用于實(shí)施本文所述的本發(fā)明的各實(shí)施例的大量計(jì)算設(shè)備配置的限制。圖18是示出可用來實(shí)施本發(fā)明的各實(shí)施例的計(jì)算設(shè)備1800的示例物理組件的框圖。下面描述的計(jì)算設(shè)備組件可適用于上述的計(jì)算設(shè)備。在基本配置中,計(jì)算設(shè)備1800可包括至少一個(gè)處理單元1802和系統(tǒng)存儲器1804。取決于計(jì)算設(shè)備的配置和類型,系統(tǒng)存儲器1804可包括,但不限于,易失性存儲器(例如,隨機(jī)存取存儲器(RAM))、非易失性存儲器(例如,只讀存儲器(ROM))、閃存、或任何組合。系統(tǒng)存儲器1804可包括操作系統(tǒng)1805、一個(gè)或多個(gè)編程模塊1806,且可包括web瀏覽器應(yīng)用1820。例如,操作系統(tǒng)1805可適用于控制計(jì)算設(shè)備1800的操作。在一個(gè)實(shí)施例中,編程模塊1806可包括如上參看圖1A所述的安裝在計(jì)算設(shè)備1800上的動(dòng)畫引擎160。此外,本發(fā)明的實(shí)施例可結(jié)合圖形庫、其他操作系統(tǒng)、或任何其他應(yīng)用程序來實(shí)踐,并且不限于任何特定應(yīng)用或系統(tǒng)。該基本配置在圖18中由虛線1808內(nèi)的那些組件示出。計(jì)算設(shè)備1800可具有附加特征或功能。例如,計(jì)算設(shè)備1800還可包括附加數(shù)據(jù)存儲設(shè)備(可移動(dòng)和/或不可移動(dòng)),諸如例如,磁盤、光盤、或磁帶。這些附加存儲在圖18中由可移動(dòng)存儲1809和不可移動(dòng)存儲1810示出。計(jì)算設(shè)備1800還可包含可允許設(shè)備1800諸如通過分布式計(jì)算環(huán)境中的網(wǎng)絡(luò)(例如,內(nèi)聯(lián)網(wǎng)或因特網(wǎng))來與其他計(jì)算設(shè)備1816進(jìn)行通信的通信連接1818。通信連接1816是通信介質(zhì)的一個(gè)示例。如上所述,可在系統(tǒng)存儲器1804中存儲包括操作系統(tǒng)1805在內(nèi)的多個(gè)程序模塊和數(shù)據(jù)文件。當(dāng)在處理單元1802上執(zhí)行時(shí),諸如動(dòng)畫引擎160之類的編程模塊1806可執(zhí)行各過程,包括例如,如上所述的一種或多種方法1700的各個(gè)階段。上述過程是一個(gè)示例,且處理單元1802可執(zhí)行其他過程。根據(jù)本發(fā)明的實(shí)施例可使用的其他編程模塊可包括電子郵件和聯(lián)系人應(yīng)用、文字處理應(yīng)用、電子表格應(yīng)用、數(shù)據(jù)庫應(yīng)用、幻燈片演示應(yīng)用、繪圖或計(jì)算機(jī)輔助應(yīng)用等。一般而言,根據(jù)本發(fā)明的實(shí)施例,程序模塊可包括可執(zhí)行特定任務(wù)或可實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類型的結(jié)構(gòu)。此外,本發(fā)明的實(shí)施例可用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)踐,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)或可編程消費(fèi)電子產(chǎn)品、小型機(jī)、大型計(jì)算機(jī)等。本發(fā)明的實(shí)施例還可在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲器存儲設(shè)備兩者中。此外,本發(fā)明的實(shí)施例可在包括分立電子元件的電路、包含邏輯門的封裝或集成電子芯片、利用微處理器的電路、或在包含電子元件或微處理器的單個(gè)芯片上實(shí)踐。例如,可以通過片上系統(tǒng)(SOC)來實(shí)施本發(fā)明的各實(shí)施例,其中,可以將圖18中示出的每個(gè)或許多組件集成到單個(gè)集成電路上。這樣的SOC設(shè)備可包括一個(gè)或多個(gè)處理單元、圖形單元、通信單元、系統(tǒng)虛擬化單元以及各種應(yīng)用功能,所有這些都被集成到(或“燒錄到”)芯片基板上作為單個(gè)集成電路。當(dāng)通過SOC操作時(shí),在此所述的關(guān)于應(yīng)用160的功能可以通過在單個(gè)集成電路(芯片)上集成有計(jì)算設(shè)備/系統(tǒng)1800的其它組件的專用邏輯來操作。本發(fā)明的實(shí)施例還可使用能夠執(zhí)行諸如例如,AND (與)、0R (或)和NOT (非)的邏輯運(yùn)算的其他技術(shù)來實(shí)踐,包括但不限于,機(jī)械、光學(xué)、流體和量子技術(shù)。另外,本發(fā)明的實(shí)施例可在通用計(jì)算機(jī)或任何其他電路或系統(tǒng)中實(shí)踐。例如,本發(fā)明的實(shí)施例可被實(shí)現(xiàn)為計(jì)算機(jī)過程(方法)、計(jì)算系統(tǒng)、或諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)之類的制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀并對用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序編碼的計(jì)算機(jī)存儲介質(zhì)。本文所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲介質(zhì)。計(jì)算機(jī)存儲介質(zhì)可包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲器1804、可移動(dòng)存儲1809和不可移動(dòng)存儲1810都是計(jì)算機(jī)存儲介質(zhì)(即,存儲器存儲)的示例。計(jì)算機(jī)存儲介質(zhì)可包括,但不限于,RAM、ROM、電可擦除只讀存儲器(EEPR0M)、閃存或其他存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設(shè)備、或者可用于存儲信息且可由計(jì)算設(shè)備1800訪問的任何其他介質(zhì)。任何這樣的計(jì)算機(jī)存儲介質(zhì)都可以是設(shè)備1800的一部分。計(jì)算設(shè)備1800還可以具有輸入設(shè)備1812,如鍵盤、鼠標(biāo)、筆、聲音輸入設(shè)備、觸摸輸入設(shè)備等。還可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等輸出設(shè)備1814。上述設(shè)備是示例,并且可使用其他設(shè)備。本文所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)還可包括通信介質(zhì)。通信介質(zhì)可由諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)來體現(xiàn),并且包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”可以描述以對該信號中的信息進(jìn)行編碼的方式設(shè)定或者改變其一個(gè)或多個(gè)特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接等有線介質(zhì),以及諸如聲學(xué)、射頻(RF)、紅外線和其他無線介質(zhì)等無線介質(zhì)。圖19A和19B示出可用來實(shí)施本發(fā)明的各實(shí)施例的合適的移動(dòng)計(jì)算環(huán)境,例如移動(dòng)電話1900、智能電話、輸入板個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)等。參考圖19A,示出了用于實(shí)現(xiàn)各實(shí)施例的示例移動(dòng)計(jì)算設(shè)備1900。在一基本配置中,移動(dòng)計(jì)算設(shè)備1900是具有輸入元件和輸出元件兩者的手持式計(jì)算機(jī)。輸入元件可包括允許用戶將信息輸入到移動(dòng)計(jì)算設(shè)備1900中的觸摸屏顯示器1905和輸入按鈕1915。移動(dòng)計(jì)算設(shè)備1900還可結(jié)合允許進(jìn)一步的用戶輸入的可選的側(cè)面輸入元件1915??蛇x的側(cè)面輸入元件1915可以是旋轉(zhuǎn)開關(guān)、按鈕、或任何其他類型的手動(dòng)輸入元件。在替代實(shí)施例中,移動(dòng)計(jì)算設(shè)備1900可結(jié)合更多或更少的輸入元件。例如,在某些實(shí)施例中,顯示器1905可以不是觸摸屏。在又一替代實(shí)施例中,移動(dòng)計(jì)算設(shè)備是便攜式電話系統(tǒng),如具有顯示器1905和輸入按鈕1910的蜂窩電話。移動(dòng)計(jì)算設(shè)備1900還可包括可選的小鍵盤1935??蛇x的小鍵盤1935可以是物理小鍵盤或者在觸摸屏顯示器上生成的“軟”小鍵盤。移動(dòng)計(jì)算設(shè)備1900結(jié)合輸出元件,如可顯示圖形用戶界面(⑶I)的顯示器1905。其他輸出元件包括揚(yáng)聲器1925和LED光1920。另外,移動(dòng)計(jì)算設(shè)備1900可包含振動(dòng)模塊(未示出),該振動(dòng)模塊使得移動(dòng)計(jì)算設(shè)備1900振動(dòng)以將事件通知給用戶。在又一實(shí)施例中,移動(dòng)計(jì)算設(shè)備1900可結(jié)合耳機(jī)插孔(未示出),用于提供另一手段來提供輸出信號。盡管此處組合移動(dòng)計(jì)算設(shè)備1900來描述,但在替代實(shí)施例中,本發(fā)明還可組合任何數(shù)量的計(jì)算機(jī)系統(tǒng)來被使用,如在臺式環(huán)境中、膝上型或筆記本計(jì)算機(jī)系統(tǒng)、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)等。本發(fā)明的實(shí)施例也可在分布式計(jì)算環(huán)境中實(shí)踐,其中任務(wù)由分布式計(jì)算環(huán)境中通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行;程序可位于本機(jī)和遠(yuǎn)程存儲器存儲設(shè)備中。總而言之,具有多個(gè)環(huán)境傳感器、向用戶提供通知的多個(gè)輸出元件和多個(gè)通知事件類型的任何計(jì)算機(jī)系統(tǒng)可結(jié)合本發(fā)明的實(shí)施例。圖19B是示出在一個(gè)實(shí)施例中使用的諸如圖19A所示的計(jì)算設(shè)備等移動(dòng)計(jì)算設(shè)備的組件的框圖。即,移動(dòng)計(jì)算設(shè)備1900可結(jié)合系統(tǒng)1902以實(shí)現(xiàn)某些實(shí)施例。例如,系統(tǒng)1902可被用于實(shí)現(xiàn)可運(yùn)行與臺式或筆記本計(jì)算機(jī)的應(yīng)用類似的一個(gè)或多個(gè)應(yīng)用的“智能電話”,這些應(yīng)用例如瀏覽器、日程安排、即時(shí)消息、以及媒體播放器應(yīng)用。在某些實(shí)施例中,系統(tǒng)1902被集成為計(jì)算設(shè)備,諸如集成的個(gè)人數(shù)字助理(PDA)和無線電話。一個(gè)或多個(gè)應(yīng)用程序1966可被加載到存儲器1962中并在操作系統(tǒng)1964上或與操作系統(tǒng)2064相關(guān)聯(lián)地運(yùn)行。應(yīng)用程序的示例包括電話撥號程序、電子郵件程序、PM (個(gè)人信息管理)程序、文字處理程序、電子表格程序、因特網(wǎng)瀏覽器程序、消息通信程序等等。系統(tǒng)1902還包括存儲器1968內(nèi)的非易失性存儲1962。非易失性存儲1968可被用于存儲在系統(tǒng)1902斷電時(shí)不會丟失的持久信息。應(yīng)用1966可使用信息并將信息存儲在非易失性存儲1968中,如電子郵件應(yīng)用使用的電子郵件或其他消息等。同步應(yīng)用(未示出)也駐留在系統(tǒng)1902上并被編程為與駐留在主控機(jī)計(jì)算機(jī)上的對應(yīng)同步應(yīng)用進(jìn)行交互,以保持存儲在非易失性存儲1968中的信息與存儲在主控機(jī)計(jì)算機(jī)上的對應(yīng)信息相同步。如應(yīng)被理解的,其他應(yīng)用可被加載到存儲器1962中且在設(shè)備1900上運(yùn)行,包括參看圖1A上述的動(dòng)畫引擎160。系統(tǒng)1902具有可被實(shí)現(xiàn)為一個(gè)或多個(gè)電池的電源1970。電源1970還可包括外部功率源,如補(bǔ)充電池或?qū)﹄姵刂匦鲁潆姷腁C適配器或加電對接托架。系統(tǒng)1902還可包括執(zhí)行發(fā)射和接收無線電頻率通信的功能的無線電1972。無線電1972通過通信運(yùn)營商或服務(wù)供應(yīng)商方便了系統(tǒng)1902與“外部世界”之間的無線連接。來往無線電1972的傳輸是在操作系統(tǒng)1964的控制下進(jìn)行的。換言之,無線電1972接收的通信可通過操作系統(tǒng)1966傳播到應(yīng)用程序1964,反之亦然。無線電1972允許系統(tǒng)1902例如通過網(wǎng)絡(luò)與其他計(jì)算設(shè)備通信。無線電1972是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通常由諸如載波或其他傳輸機(jī)制之類的已調(diào)制數(shù)據(jù)信號中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)來體現(xiàn),并且包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指具有以在信號中編碼信息的方式被設(shè)定或改變其一個(gè)或多個(gè)特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。如此處所使用的術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括存儲介質(zhì)和通信介質(zhì)兩者。系統(tǒng)1902的該實(shí)施例是以兩種類型的通知輸出設(shè)備來示出的可被用于提供視覺通知的LED 1920,以及可被用于揚(yáng)聲器1925提供音頻通知的音頻接口 1974。這些設(shè)備可直接耦合到電源1970,使得當(dāng)被激活時(shí),即使為了節(jié)省電池功率而可能關(guān)閉處理器1960和其他組件,它們也保留一段由通知機(jī)制指示的保持通電時(shí)間。LED 1920可被編程為無限地保持通電,直到用戶采取行動(dòng)指示該設(shè)備的通電狀態(tài)。音頻接口 1974用于向用戶提供聽覺信號并從用戶接受聽覺信號。例如,除被耦合到揚(yáng)聲器1925以外,音頻接口 1974還可被耦合到話筒以接收聽覺輸入,諸如便于電話對話。根據(jù)各本發(fā)明的各實(shí)施例,話筒也可充當(dāng)音頻傳感器來便于對通知的控制,如下文將描述的。系統(tǒng)1902可進(jìn)一步包括允許板載相機(jī)1930的操作來記錄靜止圖像、視頻流等的視頻接口 1976。移動(dòng)計(jì)算設(shè)備實(shí)現(xiàn)系統(tǒng)1902可具有附加特征或功能。例如,設(shè)備還可包括附加數(shù)據(jù)存儲設(shè)備(可移動(dòng)的/或不可移動(dòng)的),諸如磁盤、光盤或磁帶。此類附加存儲在圖19B中由存儲1968示出。計(jì)算機(jī)存儲介質(zhì)可包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其他數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。設(shè)備1900生成或捕捉的且經(jīng)系統(tǒng)1902存儲的數(shù)據(jù)/信息可如上所述本地存儲在設(shè)備1900上,或數(shù)據(jù)可被存儲在可由設(shè)備通過無線電1972或通過設(shè)備1900和與設(shè)備1900相關(guān)聯(lián)的一分開的計(jì)算設(shè)備之間的有線連接訪問的任何數(shù)量的存儲介質(zhì)上,該計(jì)算設(shè)備如例如因特網(wǎng)之類的分布式計(jì)算網(wǎng)絡(luò)中的服務(wù)器計(jì)算機(jī)。如應(yīng)理解的,此類數(shù)據(jù)/信息可經(jīng)設(shè)備1900、經(jīng)無線電1972或經(jīng)分布式計(jì)算網(wǎng)絡(luò)來被訪問。類似地,這些數(shù)據(jù)/信息可根據(jù)已知的數(shù)據(jù)/信息傳送和存儲手段來容易地在計(jì)算設(shè)備之間傳送以供存儲和使用,這些手段包括電子郵件和協(xié)作數(shù)據(jù)/信息共享系統(tǒng)。圖20示出了一系統(tǒng)體系結(jié)構(gòu),該系統(tǒng)體系結(jié)構(gòu)用于在協(xié)作工作會話之前、期間或之后經(jīng)由分布式計(jì)算環(huán)境向各種客戶機(jī)設(shè)備提供與該動(dòng)畫引擎160相關(guān)聯(lián)的通信和內(nèi)容,如上所述。如上所述,動(dòng)畫引擎160允許對于計(jì)算機(jī)生成的顯示組件的管理,包括為存儲器和處理資源節(jié)省而丟棄閑置顯示組件。通過動(dòng)畫引擎160管理的顯示組件可被存儲在不同的通信信道或其他存儲類型中。例如,可使用目錄服務(wù)2022、web門戶2024、郵箱服務(wù)2026、即時(shí)消息通信存儲2028以及社交聯(lián)網(wǎng)站點(diǎn)2030來存儲顯示組件以及從中發(fā)展出顯示組件的信息。系統(tǒng)/應(yīng)用160、2018可使用任何這些類型的系統(tǒng)等,用于允許在存儲2016中管理和存儲顯示組件。服務(wù)器2020可向客戶機(jī)提供關(guān)于被管理的顯示組件和內(nèi)容的通信。作為一個(gè)示例,服務(wù)器2020可以是通過web提供顯示組件管理通信和內(nèi)容的web服務(wù)器。服務(wù)器2020可通過網(wǎng)絡(luò)2015在web上向客戶機(jī)提供在線顯示組件管理和內(nèi)容??色@取顯示組件管理通信和內(nèi)容的客戶機(jī)的示例包括計(jì)算設(shè)備2000,該計(jì)算設(shè)備可包括任何通用個(gè)人計(jì)算機(jī)、平板式計(jì)算設(shè)備2035和/或可包括智能電話的移動(dòng)計(jì)算設(shè)備1900。任何這些設(shè)備可從存儲2016獲得顯示組件管理通信和內(nèi)容。以上參考根據(jù)本發(fā)明的實(shí)施例的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的框圖和/或操作說明描述了本發(fā)明的實(shí)施例??蛑兴⒚鞯母鞴δ?動(dòng)作可按不同于任何流程圖所示的次序出現(xiàn)。例如,取決于所涉及的功能/動(dòng)作,連續(xù)示出的兩個(gè)框?qū)嶋H上可基本同時(shí)執(zhí)行,或者這些框有時(shí)可按相反的次序執(zhí)行。對本領(lǐng)域的技術(shù)人員而言,顯然可對本發(fā)明作出各個(gè)修改或變化,而不背離本發(fā)明的范圍或精神。在考慮說明書和實(shí)現(xiàn)此處公開的本發(fā)明之后,本發(fā)明的其他實(shí)施例對本領(lǐng)域的技術(shù)人員而言將是顯而易見的。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)畫顯示計(jì)算機(jī)生成的顯示組件的方法,所述方法包括生成一個(gè)或多個(gè)顯示層,用于在計(jì)算機(jī)啟用的顯示表面上顯示一個(gè)或多個(gè)顯示組件;在所述一個(gè)或多個(gè)顯示層的每一個(gè)上畫出顯示組件;向所述一個(gè)或多個(gè)顯示層的每一個(gè)施加動(dòng)畫性質(zhì);向所述一個(gè)或多個(gè)顯示層的每一個(gè)施加一個(gè)或多個(gè)動(dòng)畫行為,用于,當(dāng)被施加至所述一個(gè)或多個(gè)顯示層的每一個(gè)的動(dòng)畫性質(zhì)發(fā)生變化時(shí),基于所施加的動(dòng)畫行為,為所述一個(gè)或多個(gè)顯示層的每一個(gè),啟用動(dòng)畫;接收對于施加至所述顯示層的其中一個(gè)或多個(gè)的一個(gè)或多個(gè)性質(zhì)的變化;和根據(jù)施加至接收到性質(zhì)變化的一個(gè)或多個(gè)層的一個(gè)或多個(gè)動(dòng)畫行為,動(dòng)畫顯示已經(jīng)接收到性質(zhì)變化的一個(gè)或多個(gè)層。
2.如權(quán)利要求1所述的方法,其特征在于,向所述一個(gè)或多個(gè)顯不層的每一個(gè)施加一個(gè)或多個(gè)動(dòng)畫行為,包括施加根據(jù)聲明性標(biāo)記語言所描述的一個(gè)或多個(gè)動(dòng)畫行為。
3.如權(quán)利要求1所述的方法,其特征在于,向所述一個(gè)或多個(gè)顯不層的每一個(gè)施加一個(gè)或多個(gè)動(dòng)畫行為,包括向所述一個(gè)或多個(gè)顯示層的每一個(gè)施加一個(gè)或多個(gè)動(dòng)畫類別,用于指定響應(yīng)于接收對于層的性質(zhì)變化可被施加至所述層的動(dòng)畫。
4.如權(quán)利要求1所述的方法,其特征在于,所述一個(gè)或多個(gè)動(dòng)畫行為包括以下行為中的一個(gè)或多個(gè)顯示層的移動(dòng)、顯示層的旋轉(zhuǎn)、重新調(diào)整顯示層的大小、比例縮放顯示層、隱藏顯示層、改變顯示層的透明度、圖像放大顯示層、滾動(dòng)顯示層、和在顯示層上循環(huán)位圖的動(dòng)畫。
5.如權(quán)利要求1所述的方法,其特征在于,所述一個(gè)或多個(gè)動(dòng)畫行為包括施加至所述一個(gè)或多個(gè)層的每一個(gè)的時(shí)序功能,當(dāng)根據(jù)施加至接收到性質(zhì)變化的一個(gè)或多個(gè)層的一個(gè)或多個(gè)動(dòng)畫行為來動(dòng)畫顯示接收到性質(zhì)變化的一個(gè)或多個(gè)層時(shí),所述時(shí)序功能指定所施加的速度和加速度。
6.如權(quán)利要求1所述的方法,其特征在于,所述一個(gè)或多個(gè)動(dòng)畫行為包括施加至所述一個(gè)或多個(gè)層的每一個(gè)的關(guān)鍵幀,所述關(guān)鍵幀定義如何將畫到所述一個(gè)或多個(gè)顯示層的每一個(gè)的顯示組件的性質(zhì)在動(dòng)畫狀態(tài)之間動(dòng)畫顯示。
7.如權(quán)利要求1所述的方法,其特征在于,生成一個(gè)或多個(gè)顯示層用于在計(jì)算機(jī)啟用的顯示表面上顯示一個(gè)或多個(gè)顯示組件之前,還包括生成顯示場景對象,用于描述為顯示所述一個(gè)或多個(gè)顯示組件而生成的一個(gè)或多個(gè)顯示層;生成一個(gè)或多個(gè)顯示框,用于接收所述一個(gè)或多個(gè)顯示層中的一個(gè)或多個(gè);和從所述顯示場景中為所述一個(gè)或多個(gè)顯示框的每一個(gè)生成層主控機(jī),用于在包含于所述一個(gè)或多個(gè)顯示框的每一個(gè)中的顯示層上渲染顯示組件。
8.如權(quán)利要求7所述的方法,其特征在于,響應(yīng)于為所述一個(gè)或多個(gè)顯不框的每一個(gè)生成層主控機(jī),還包括從每一個(gè)層主控機(jī)檢取根層;為每一個(gè)顯示框生成合成樹,包括將與每一個(gè)顯示框相關(guān)聯(lián)的一個(gè)或多個(gè)層的每一個(gè)作為子層添加到相應(yīng)的根層;和向每一個(gè)子層施加次序指數(shù),用于確定每一個(gè)子層相對于其他子層的動(dòng)畫次序。
9.一種用于動(dòng)畫顯示計(jì)算機(jī)生成的顯示組件的系統(tǒng),所述系統(tǒng)包括動(dòng)畫引擎,用于啟用在計(jì)算機(jī)啟用的顯示表面上顯示的計(jì)算機(jī)生成的顯示組件的基于行為的動(dòng)畫;所述動(dòng)畫引擎包括用戶界面(UI)線程,用于響應(yīng)于所述顯示層上的性質(zhì)變化,在所述顯示層上調(diào)度動(dòng)畫;合成器線程,用于從所述Π線程接收具有性質(zhì)變化的顯示層,用于生成動(dòng)畫調(diào)度通Ih ;和渲染線程,用于從所述合成器線程接收所述動(dòng)畫調(diào)度通信,用于根據(jù)在相關(guān)聯(lián)的顯示層上的性質(zhì)變化,渲染與具有性質(zhì)變化的所述顯示層相關(guān)聯(lián)的顯示組件。
10.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在被計(jì)算機(jī)執(zhí)行時(shí)執(zhí)行一種動(dòng)畫顯示計(jì)算機(jī)生成的顯示組件的方法,所述方法包括生成顯示層,用于在計(jì)算機(jī)啟用的顯示表面上顯示顯示組件;在所述顯示層上畫出顯示組件;向所述顯示層施加動(dòng)畫性質(zhì);向所述顯示層施加一個(gè)或多個(gè)動(dòng)畫行為,用于,當(dāng)施加至所述顯示層的動(dòng)畫性質(zhì)變化時(shí),基于所施加的動(dòng)畫行為,啟用所述顯示層的動(dòng)畫;和響應(yīng)于施加至所述顯示層的動(dòng)畫性質(zhì)的變化,基于施加至所述顯示層的一個(gè)或多個(gè)動(dòng)畫行為,來調(diào)度所述顯示層的動(dòng)畫。
全文摘要
本發(fā)明提供了用戶界面和內(nèi)容項(xiàng)的計(jì)算機(jī)生成的顯示組件的動(dòng)畫。動(dòng)畫應(yīng)用或引擎創(chuàng)建了各顯示組件的圖像(如,位像)并將這些圖像放置在動(dòng)畫層??蔀楦鲗又付▌?dòng)畫行為,從而當(dāng)各層的性質(zhì)變化時(shí)(如,所包含的對象在層上的移動(dòng))指示各層和相關(guān)聯(lián)的顯示組件圖像如何動(dòng)畫顯示或行為,以及,來改變各層上的性質(zhì)從而觸發(fā)動(dòng)畫(如,引起對象旋轉(zhuǎn)的動(dòng)畫)。為了實(shí)現(xiàn)較高的幀速率,該動(dòng)畫應(yīng)用可使用三個(gè)處理線程,包括用戶界面(UI)線程、合成器線程、和渲染線程。通過利用用于定義顯示行為功能和性質(zhì)的聲明性標(biāo)記語言(諸如可擴(kuò)展標(biāo)記語言),顯示行為可被優(yōu)化并控制。
文檔編號G06F9/44GK102999332SQ20121045548
公開日2013年3月27日 申請日期2012年11月14日 優(yōu)先權(quán)日2011年11月14日
發(fā)明者M·I·博里森科, T·R·亞當(dāng)斯, B·C·阿林, A·J·比曼, W·梁, E·W·利伯曼 申請人:微軟公司