專利名稱:交錯動畫調(diào)度的制作方法
技術領域:
本發(fā)明涉及交錯動畫調(diào)度。
背景技術:
動畫是一種通過快速滾動經(jīng)過一系列圖像引起的錯覺,其中每個圖像都與上一圖像稍微不同。查看動畫的某人將該組圖像感知為單個變化的場景,比如場景中的運動。軟件應用中的許多用戶界面利用動畫來提供用戶交互反饋、突出上下文過渡、或者吸引對特定信息的注意力。用戶界面中的動畫的示例是大量的。動畫可以向利用定點設備或手指選中的屏幕上“按鈕”提供按下并返回運動,并且可以在用戶滾動通過文檔時提供頁面翻轉(zhuǎn)效果。使用配備有動畫的運動可以在應用內(nèi)提供高度期望的效果。為了實現(xiàn)某些效果,用戶界面設計者可以使動畫交錯,即按照時間以某個有意義 的方式來安排動畫的順序,以便向用戶提供一系列動畫的合適視覺上下文。一個示例可以包括一系列動畫,比如按照時間連續(xù)地或相繼地添加到屏幕的列表項或者“項目符號點”。另一示例可以包括用戶界面元素,比如動物被動畫化為跑向人并且然后人被動畫化為撫摸該動物。在沒有使這些元素的動畫交錯的能力時,運動將同時發(fā)生,并且將失去動畫的意義。然而,交錯動畫的創(chuàng)建在應用框架中是困難的,并且在每種情況下都要求開發(fā)者提供自定義代碼,這導致設計用戶界面時的低效率。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化的形式介紹將在以下的具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。本技術針對一種定時功能,該定時功能分布一系列目標動畫或交錯動畫的漸進啟動時間。該定時功能包括一組可選擇的參數(shù),這些參數(shù)用于在用戶界面中創(chuàng)建定制的交錯動畫。該組可選擇的參數(shù)包括被動畫化的每個目標用戶界面元素的用戶界面幾何。該定時功能提供一種可重用的工具以用于應用交錯動畫,并且特定的參數(shù)被選擇以定制用戶界面中的交錯動畫。該定時功能是無狀態(tài)的,并且可以在任何應用框架或系統(tǒng)中以相同或不同的參數(shù)被重用來控制在總體用戶界面布局變化的共享上下文中執(zhí)行的一組動畫的交錯行為。
包括附圖來提供對各實施例的進一步理解,且這些附圖被合并在本說明書內(nèi)并構成其一部分。附圖示出各實施例,并且與說明書一起用于解釋各實施例的原理。其他實施例和各實施例的許多預期優(yōu)點將隨著參考下面的詳細描述進行更好的理解而被認識到。附圖的元素不一定相對于彼此而縮放。相同的附圖標記指代對應的類似部分。圖I是示出示例計算設備的框圖。
圖2是示出為圖I的計算設備配置的系統(tǒng)的邏輯架構的示例的示意圖。圖3是示出了用于在圖2的邏輯架構中使動畫交錯的方法的框圖。
具體實施例方式在以下具體實施例中,對附圖進行了參考,附圖構成了實施例的一部分且在其中作為示例示出了可在其中實踐本發(fā)明的各特定實施例。可以理解,可以使用其它實施例并且可以做出結(jié)構上或邏輯上的改變而不背離本發(fā)明的范圍。因此,以下詳細描述并不旨在限制,并且本發(fā)明的范圍由所附權利要求來限定。應理解,此處描述的各示例性實施例的特征可相互組合,除非另外具體注明。圖I示出了示例性計算機系統(tǒng),其可被用于諸如分布式計算系統(tǒng)或其他形式的計算機網(wǎng)絡的操作環(huán)境中的組件。可以使用計算機系統(tǒng)來準備或運行具有交錯動畫的計算機應用。
示例性計算機系統(tǒng)包括計算設備,諸如計算設備100。在一基本配置中,計算設備100通常包括具有一個或多個處理單元(即,處理器102)的處理器系統(tǒng),以及存儲器104。取決于計算設備的確切配置和類型,存儲器104可以是易失性的(如隨機存取存儲器(RAM))、非易失性的(諸如只讀存儲器(ROM)、閃存等)或兩者的某種組合。該基本配置在圖I中由虛線106來例示。該計算設備可采取若干形式中的一種或多種。這些形式包括個人計算機、服務器、手持式設備、消費電子產(chǎn)品(諸如視頻游戲控制臺)或其他設備。計算設備100還可具有附加特征或功能。例如,計算設備100還可包括附加存儲(可移動和/或不可移動),包括但不限于磁盤或光盤或固態(tài)存儲器,或者閃速存儲設備,諸如可移動存儲108和不可移動存儲110。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構、程序模塊或其他數(shù)據(jù)等的任何合適的方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器104、可移動存儲108和不可移動存儲110都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、通用串行總線(USB)閃存驅(qū)動器、閃存卡、或能用于存儲所需信息且可以由計算設備100訪問的任何其它介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是計算設備100的一部分。計算設備100包括允許計算設備100與其它計算機/應用115通信的一個或多個通信連接114。示例性通信連接可以是以太網(wǎng)接口。在一些示例中,計算設備也可具有一個或多個附加處理器或?qū)S锰幚砥?未示出),以執(zhí)行從處理器102卸載的處理功能。計算設備100還可包括諸如鍵盤、定點設備(例如,鼠標)、筆、語音輸入設備、觸摸輸入設備等的輸入設備112。計算設備100還可包括諸如顯示器、揚聲器、打印機等的輸出設備111。計算設備100可被配置成運行操作系統(tǒng)軟件程序以及一個或多個軟件應用,這些構成系統(tǒng)平臺。在一個示例中,計算設備100包括被稱為托管的或運行時環(huán)境的軟件組件。托管環(huán)境可被包括為操作系統(tǒng)的一部分或者可在稍后被包括為軟件下載。托管環(huán)境包括針對常見編程問題的預先編碼的解決方案以幫助軟件開發(fā)者創(chuàng)建諸如應用等在托管環(huán)境中運行的軟件程序。軟件應用可以包括移動應用、瘦客戶端應用、富客戶端應用、web應用、富因特網(wǎng)應用等等。一般而言,web應用是一種通過諸如因特網(wǎng)或其他形式的計算機網(wǎng)絡之類的網(wǎng)絡被訪問的應用。web應用的示例可以包括在瀏覽器控制的環(huán)境中被托管或者以瀏覽器支持的語言被編碼、與瀏覽器渲染的標記語言相組合的計算機軟件應用,并且可以使用web瀏覽器來渲染應用可執(zhí)行程序。其他示例性web應用可以包括瀏覽器插件計算機軟件應用或者因特網(wǎng)連接的獨立計算機軟件應用,所述因特網(wǎng)連接的獨立計算機軟件應用不要求瀏覽器渲染或瀏覽器支持的語言,并且可以完全在瀏覽器之外執(zhí)行。web應用可以提供將web瀏覽器用作客戶端的便利。而且,web應用可以在不必在可能數(shù)千個客戶端計算機上分布和安裝軟件的情況下被更新和維護,并且提供對跨平臺兼容性的支持。富因特網(wǎng)應用常常是具有富圖形用戶界面的web應用,借助于站點專用瀏覽器、瀏覽器插件、獨立沙箱或虛擬機被供應給用戶。富因特網(wǎng)應用可以提供動態(tài)和響應式的用戶體驗或用戶流媒體,并且可以廣泛地在一定范圍的設備和平臺上被訪問。軟件應用可以利用諸如集成開發(fā)環(huán)境(IDE)之類的多種開發(fā)工具來開發(fā)或創(chuàng)建。來自美國華盛頓州雷蒙德市微軟公司的“Visual Studio”的商業(yè)名稱下可獲得示例性的IDE。圖2以高級抽象示出了系統(tǒng)200的示例性邏輯架構,并且常常為諸如web應用或富因特網(wǎng)應用之類的軟件應用的開發(fā)者所使用。系統(tǒng)200的邏輯架構可以被認為是被編組 為層的協(xié)同操作的組件的集合。該示例中的應用202被配置為常見的三層設計,包括呈現(xiàn)(presentation)層204、業(yè)務應用層206和數(shù)據(jù)層208。應用202中的其他層是可能的,比如服務層,并且其他配置是可能的。應用202被配置為包括與用戶210的關系、與調(diào)用在業(yè)務應用層206內(nèi)實現(xiàn)的服務的其他應用212的關系、與諸如關系數(shù)據(jù)庫或提供數(shù)據(jù)訪問的web服務之類的數(shù)據(jù)源214的關系、以及與該應用所消費的外部或遠程服務216的關系。如在此所提及的那樣,層(layer)是與層級(tier)相區(qū)別的,盡管層和層級可以使用同一組名稱(呈現(xiàn)、業(yè)務、服務和數(shù)據(jù))。層描述應用202中的功能和組件的邏輯編組,而層級描述各個服務器、計算機、網(wǎng)絡或遠程位置上的功能和組件的物理分布并且隱含了物理分隔。例如,一個以上的層可以位于同一物理機上(即同一層級)。層級常常被配置為物理分布模式,比如2層級、3層級以及η層級等等。層常常按一般功能來對組件進行編組,并且包括允許不同層一起工作的組件。呈現(xiàn)層204包括被配置為對與該系統(tǒng)的用戶交互進行管理的面向用戶的功能,并且還可以包括提供到封裝在業(yè)務應用層206中的核心業(yè)務邏輯中的公共橋的組件。業(yè)務應用層206通常實現(xiàn)系統(tǒng)200的核心功能,并且封裝相關的業(yè)務邏輯。其還可以包括能夠向其他調(diào)用者暴露服務接口的組件。數(shù)據(jù)層208通常提供對主存在系統(tǒng)200的邊界內(nèi)的數(shù)據(jù)的訪問,并且還可以訪問由其他聯(lián)網(wǎng)系統(tǒng)所暴露的數(shù)據(jù),比如通過該聯(lián)網(wǎng)系統(tǒng)。數(shù)據(jù)層208還可以暴露業(yè)務層206中的組件可以消費的通用接口。呈現(xiàn)層204包括實現(xiàn)和顯示用戶界面以及管理用戶交互的組件。除了組織用戶交互的組件以外,呈現(xiàn)層204還包括用于用戶輸入和顯示的控件,通常包括用戶界面組件218和呈現(xiàn)邏輯組件220。用戶界面組件218包括應用202的視覺元素,所述視覺元素用于向用戶顯示信息并且接受用戶輸入。呈現(xiàn)邏輯組件220包括應用代碼,所述應用代碼以通常獨立于任何具體用戶界面實現(xiàn)的方式來定義應用的邏輯行為和結(jié)構。用戶界面設計者難以有效地在應用的邏輯和呈現(xiàn)層分開的應用框架中使動畫交錯。一般而言,將交錯行為應用于一系列動畫可能涉及通常將由應用的開發(fā)者作為自定義代碼來編寫的應用邏輯。一種構建交錯動畫的常見方案包括在應用運行時執(zhí)行自定義用戶代碼,該自定義用戶代碼在每個動畫開始時確定動畫交錯行為。然后,為每個應用和交錯動畫事件創(chuàng)建自定義代碼,這降低了生產(chǎn)力并且不利地影響應用性能和資產(chǎn)重用。這中斷了設計者-開發(fā)者工作流,并且將應用的呈現(xiàn)和邏輯更緊密地綁定在一起,這對于在任何可能的時候?qū)⒊尸F(xiàn)和邏輯解耦的架構策略而言是不合適的。圖3示出了用于在給定的應用框架中生成交錯動畫的方法300。在302創(chuàng)建用戶界面定義。在一個示例中,用戶界面設計者在呈現(xiàn)層204內(nèi)創(chuàng)建用戶界面定義。該用戶界面定義在304應用定時功能組件以分布一系列目標動畫的漸進啟動時間。在該示例中,應用開發(fā)者以不涉及交錯動畫的應用框架內(nèi)的用戶界面定義所涉及的傳統(tǒng)設計者-開發(fā)者工作流中通常描述的風格來創(chuàng)建定時功能。在306,用戶界面定義內(nèi)的定時功能指導動畫運行時將動畫交錯行為應用于目標用戶界面元素。方法300可以被實現(xiàn)到支持分層架構風格的設計模式中,比如分開的呈現(xiàn)模式中。分開的呈現(xiàn)模式可以允許圖形設計者創(chuàng)建用戶界面,而開發(fā)者生成驅(qū)動用戶界面的代碼。呈現(xiàn)層中的分開的呈現(xiàn)模式的示例包括模型-視圖控制器(Model-View-ContiOller)(MVC)或者模型-視圖視圖模型(Model-View-ViewModel) (MVVM),這些模式將用戶界面處 理問題劃分成不同的角色。MVC和MVVM模式的模型方面表示諸如包括業(yè)務規(guī)則的域模型之類的數(shù)據(jù),而視圖方面表示用戶界面。這些角色提升重用性。在這種情況下,定時功能可以在MVC或MVVM的視圖方面內(nèi)實現(xiàn),并且允許定時功能排他地存在于呈現(xiàn)層204內(nèi)。定時功能分布一系列目標動畫的漸進啟動時間。定時功能包括一組可選擇的參數(shù),這些參數(shù)用于在用戶界面中創(chuàng)建定制的交錯動畫。該組可選擇的參數(shù)包括每個目標動畫的用戶界面幾何。因此,用戶界面幾何可以用于控制該系列的目標動畫的啟動時間,以及允許漸進啟動時間以線性和非線性方式二者來進行。在該示例中,定時功能提供一種可重用的工具以用于應用交錯動畫,并且特定的參數(shù)被選擇以在用戶界面中定制交錯動畫。定時功能是無狀態(tài)的,并且可以在任何應用框架或系統(tǒng)中以相同或不同的參數(shù)被重用來控制在總體用戶界面布局變化的共享上下文中執(zhí)行的一組動畫的交錯行為。示例性的定時功能可以被實現(xiàn)為具有下列代碼的界面聲明
public interface ILayoutTransitionStaggerFunction {
TimeSpan GetTransitionDelay(
FrameworkElement targetElement,
IList<Rect> transitioningElementBounds,int elementlndex);
}該示例性的代碼是以C#編程語言(C#)來表達的,該編程語言與諸如可從微軟公司獲得的“Silverlight”或者“Windows Presentation Foundation”商業(yè)名稱下銷售的開發(fā)技術兼容,但是本領域的技術人員可以以許多其他計算機語言和技術來表達該示例性的代碼。如在該聲明中所使用的那樣,F(xiàn)rameworkElement targetElement參數(shù)可以包括在給定的動畫中正被動畫化的任何用戶界面元素,即給定動畫的目標。IList〈Rect>transitioningElementBounds參數(shù)包括由當前用戶界面的上下文內(nèi)的其他動畫所針對的一組用戶界面元素的有界表面區(qū)域的有序列表(其在此以〈Rect>被描述為矩形區(qū)域)。intelementlndex參數(shù)包括元素邊界的有序集合(transitioningElementBounds)內(nèi)的目標用戶界面元素(targetElement)的索引。示例性的界面聲明表示可以具體通過針對每次使用指定參數(shù)被定制和實現(xiàn)的可重用的定時功能。具體的實現(xiàn)還可以在沒有更多的代碼和輸入的情況下在用戶界面定義中聲明性地被重用。下面的示例包括一具體的定時功能,該定時功能將基于為每個元素所提供的索引沿著二次曲線分布動畫
publicclassQuadraticIndexStaggerFunction:
LayoutTransitionStaggerFunctionBase{
public override TimeSpan GetTransitionDelay(FrameworkElement targetElement, IList<Rect> transitioningElementBounds,int elementlndex)
{
doublenormalizedlndex=Id/
(Convert.ToDouble(transitioningElementBounds.Count)/
Convert.ToDouble(elementIndex + I));
return TimeSpan.FromMilliseconds(200 * normalizedlndex *
normalizedlndex);
}
}用戶界面設計者可以重用該具體的實現(xiàn)來使其他應用中的動畫交錯。該具體實現(xiàn)可以以諸如XAML (可擴展應用標記語言)之類的用戶界面標記語言來表達,其中XAML常常在“Silverlight”和“Windows Presentation Foundation”技術中用于定義用戶界面兀素。以XAML的具體實現(xiàn)的不例提供<AnimationConstruct>
< Animati onConstruct. StaggeringB ehavior>
<local: QuadraticIndexStaggerFunction /> </AnimationConstruct.StaggeringBehavior>
〈Storyboard〉
〈DoubleAnimation Storyboard.TargetProperty="Width" To="300" /> 〈/Storyboard〉
</AnimationC onstruct>應用框架中的底層的動畫運行時于是能夠自動地解析標記并且在運行時將交錯 行為應用于所提供的動畫。盡管此處說明并描述了具體實施例,但本領域技術人員可以理解,可用各種替換和/或等價實現(xiàn)來替換所示出并描述的具體實施例而不背離本發(fā)明的范圍。本申請旨在覆蓋此處討論的具體實施例的任何改編或變型。因此,本發(fā)明旨在僅由權利要求書及其等效方案來限制。
權利要求
1.一種用于在用戶界面中使動畫交錯的方法(302),包括 應用定時功能以分布一系列目標動畫的漸進啟動時間,其中該定時功能包括一組可選擇的參數(shù)(304); 其中該組可選擇的參數(shù)包括每個目標動畫的用戶界面幾何。
2.如權利要求I所述的方法,其特征在于,該定時功能是無狀態(tài)的定時功能。
3.如權利要求2所述的方法,其特征在干,該用戶界面被包括在架構的呈現(xiàn)層中,并且無狀態(tài)的定時功能排他地處于該呈現(xiàn)層內(nèi)。
4.如權利要求I所述的方法,其特征在干,該定時功能排他地處于web應用的呈現(xiàn)層內(nèi)。
5.如權利要求3所述的方法,其特征在干,無狀態(tài)的定時功能被包括在模型-視圖視圖模型模式中。
6.如權利要求I所述的方法,其特征在于,該漸進啟動時間是非線性地分布的。
7.如權利要求6所述的方法,其特征在于,該漸進啟動時間是根據(jù)二次函數(shù)分布的。
8.如權利要求I所述的方法,其特征在干,該用戶界面幾何包括一可選擇的參數(shù),該可選擇的參數(shù)指示該用戶界面的將要被動畫化的元素。
9.如權利要求8所述的方法,其特征在干,該用戶界面的多個元素將在該用戶界面幾何內(nèi)被動畫化。
10.如權利要求9所述的方法,其特征在干,該用戶界面幾何包括關于該用戶界面的有界區(qū)域的列表的一可選擇的參數(shù),所述有界區(qū)域包括該用戶界面的由動畫所針對的所述多個元素。
11.如權利要求10所述的方法,其特征在干,該有界區(qū)域內(nèi)的元素中的每個元素都包括索引。
12.如權利要求I所述的方法,其特征在于,還包括在應用框架中為目標動畫元素創(chuàng)建用戶界面定義。
13.如權利要求12所述的方法,其特征在干,該定時功能指導動畫運行時將動畫交錯行為應用于該目標動畫元素。
14.如權利要求12所述的方法,其特征在于,為目標動畫元素創(chuàng)建用戶界面定義包括為多個目標動畫元素創(chuàng)建用戶界面定義。
15.如權利要求I所述的方法,其特征在干,該定時函數(shù)是可重用的。
全文摘要
本發(fā)明涉及交錯動畫調(diào)度。公開了一種定時功能,該定時功能分布一系列目標動畫的漸進啟動時間,或交錯動畫。該定時功能(304)包括一組可選擇的參數(shù),這些參數(shù)用于在用戶界面中創(chuàng)建定制的交錯動畫。該組可選擇的參數(shù)包括每個目標動畫的用戶界面幾何。在一個特定的示例中,在應用框架(302)中為目標動畫元素創(chuàng)建用戶界面定義,并且定時功能指導動畫運行時將動畫交錯行為(306)應用于目標動畫元素。
文檔編號G06F3/048GK102681759SQ201110444240
公開日2012年9月19日 申請日期2011年12月16日 優(yōu)先權日2010年12月17日
發(fā)明者J·畢曉普, R·J·伯克, T·亞當斯 申請人:微軟公司