專利名稱::一種可擴展的富媒體場景操作方法
技術領域:
:本發明涉及一種可擴展的富媒體場景操作方法。
背景技術:
:富媒體有別于傳統媒體,它將文本,圖形,圖片,動畫,音視頻等多種媒體對象在時間/空間上進行有機結合,提供豐富的表現形式和交互能力。其主要特征是可基于時間或用戶交互的基礎上產生動態行為。富媒體應用是一種基于富媒體技術發展起來的新興的應用類型,它的適用范圍很廣,包括交互式電視,富媒體廣告,電子雜志,電子新聞,彩信,交互式服務,如投票,訂閱,繳費等很多方面。一個富媒體應用包含一個或多個富媒體場景。富媒體場景描述了富媒體在時間和空間上的布局信息以及交互行為,一個富媒體場景由一個初始場景(initialscene)以及可能有的一系列含有序號的更新(update)組成,這些更新可以是按時序出現,也可能是通過用戶交互產生。更新可以向原有場景添加,刪除,替換媒體對象,使場景內容發生改變,呈現出動態的效果。隨著富媒體應用的快速變化、復雜性和表現力不斷增加,部分富媒體技術已不能滿足需要。使用輕量級標記語言的富媒體技術在響應應用快速變化,強大的媒體展現力,應用開發簡單等多方面優勢明顯,成為富媒體技術的發展趨勢。通過擴展SVG標準的富媒體技術屬于使用輕量級標記語言的富媒體技術的一種。SVG(ScalableVectorGraphics)是W3C組織定義的一種基于XML的、開放標準的二維矢量圖形描述語言,由于它是基于XML的,幾乎具有XML的所有的優點,例如,方便描述及擴展、易于閱讀等,同時,它具有支持用戶與媒體對象交互、為媒體對象定義時間和空間上的布局,可以描述矢量動畫效果,可隨意放大縮小圖形的優點。下面是一個簡單的SVG文件的例子<xmlversion="1.0"〉<svgwidth="12cm"height="4cm"viewBox="001200400"xmlns="http:〃www,w3,org/2000/svg"version="1.2"baseProfile="tiny"><desc>Examplerect01-rectanglewithsharpcorners</desc><rectx="l"y="l"width="1198"height="398"fill="none"stroke="blue"stroke-width="27><rectx="400"y="100"width="400"height="200"fill="yellow"stroke="navy"stroke-width="10"/></svg>XML標記語言本身不具有編程語言的邏輯控制和程序調用功能,在以往使用輕量級標記語言富媒體技術中,富媒體場景的邏輯控制以及終端能力調用都是采用腳本或者其他編程語言實現的,它們要么必須解釋執行,要么之前必須通過編譯。這樣無疑增加了終端處理的負擔,也增加了應用的開發難度;而且使用腳本的話還必須面對目前不同的腳本弓I擎差異性的影響。另一方面,富媒體應用與傳統的網絡應用不同,富媒體應用是一種針對媒體和交互的應用,在很多情況下不需要十分強大的程序語言的功能。
發明內容本發明的目的在于克服現有技術的不足,提供一種不需要采用腳本或編程語言的可擴展的富媒體場景操作方法。為實現上述發明目的,本發明的可擴展的富媒體場景操作方法包括以下步驟(1)、在富媒體場景中定義有至少一個命令,該命令包含有至少一個命令行,在富媒體場景執行過程中,該命令通過外界事件觸發,并執行其下包含的命令行;(2)、在命令行中定義有一個操作,命令行含有是否執行該操作的判斷條件,判斷條件為無條件執行或某變量的值是否等于、大于、小于、不等于另一個變量或某一數值,如果滿足,則執行,不滿足,則執行下一條命令行或返回。在本發明中,所述的命令行中定義的操作可以是1.控制操作a)創建一個變量并初始化,此變量可以用于執行命令行定義操作的判斷條件中。b)改變一個標量的值,此變量可以用于執行命令行定義操作的判斷條件中。c)停止某個命令的執行。d)返回某個命令的第一個命令行執行。2.動畫操作a)觸發場景中一段動畫的執行。b)終止場景中一段動畫的執行。c)重新設置場景中的焦點位置。3.終端能力調用操作a)調用短信,電話,郵件等具有交互網絡功能的應用。b)調用字體設置,背光等系統應用。c)調用數字廣播等具有單向網絡功能的應用。d)其他應用。本發明中,所述的命令行中定義的操作可以根據不同的語言環境和應用環境進行各種定義,從而具有可擴展性。本發明的目的是這樣實現的,在富媒體場景執行過程中,通過外界事件觸發本發明定義的命令,執行命令中包含的命令行;再通過命令行中設定操作判斷條件的判斷,來執行富媒體場景操作,這樣就不需要采用腳本或者其他編程語言,不需要解釋執行或編譯,減小了終端處理的負擔和應用的開發難度。圖1是觸發場景中的動畫示意圖2是重新設置場景中的焦點位置示意圖。具體實施例方式下面結合附圖,對本發明優選具體實施方式進行描述。在以下的描述中,當采用的已知功能和設計的詳細描述也許會淡化本發明的主題內容時,這些描述在這兒將被忽略。實施例在本具體實施方式中,基于XML標記語言對本發明的可擴展的富媒體場景操作方法進行描述。基于XML標記語言定義兩個標簽,標簽l,用〈cmd〉表示,代表命令;標簽2,用〈cmdLine/〉表示,代表命令行。標簽1僅且僅能包含一條或多條標簽2,標簽1包含id屬性和begin屬性。id屬性用于唯一標識一個標簽1的實例,id屬性定義于xml標準中,見http:〃www.w3.org/XML/。begin屬性指示了在何種外界事件下標簽1會被觸發執行,begin屬性可能的取值范圍定義于svg標準中,見http:〃www.w3.org/Graphics/SVG/。標簽2包含兩個屬性,一個屬性,在本具體實施方式中用test表示,用于描述執行操作的判斷條件,一個屬性,在本具體實施方式中用action表示,描述操作的內容。在本實施例中,本發明的方法基于XML標記語言的一種具體描述如下cmd標簽〈cmc^標簽僅且僅能包含一個或多個〈cmdLine:4示簽,當預定義的外界事件激活了〈cmcU4示簽,會依次執行其下包含的化mdLine:4示簽。〈cmd:4示簽主要包含兩個屬性,見表l:<table>tableseeoriginaldocumentpage6</column></row><table>表l〈cmd〉標簽的父節點可以是〈svg、<§>或者<3>這些容器標簽,但是<011(1>標簽的子節點不允許通過uDOM接口訪問。〈cmd〉標簽的子節點只允許是〈cmdLine、個典型的〈cmd〉標簽的例子是_<table>tableseeoriginaldocumentpage6</column></row><table>這個典型的〈cmd〉標簽例子說明了在富媒體場景時間為i秒的時候,觸發了id為init的〈cmd〉標簽,這個標簽包含一個〈cmdLine、這個〈cmdLine〉執行的動作是創建了一個變量a,同時將其初始化為0。例子中的〈cmdLine〉標簽不含test屬性,意為無條件執行。cmdLine標簽〈cmdLine〉標簽用于描述一條完整的命令行,命令行的內容是根據判斷條件操作一些變量或者觸發一些動畫執行,標簽主要包含兩個屬性,見表2:<table>tableseeoriginaldocumentpage7</column></row><table>表2〈cmdLine〉標簽的父節點只能是〈cmd、〈cmdLine〉標簽不能包含任何子節屬性test的值是"conditional",取值可以采用下面的方式描述conditional=var["〉"n"二,卞'!二"][var|decimal]下面是每個部分的解釋var=alpha*[alpha|digit|extra]decimal=*digitlowalpha="a"|"b"|"c"|"d"|"e"|"f'|"g"|"h"|ii.,k!,T,!"mi"ni"0!,,p!"q"i,,r"i"s"i"t"J"u"i"v"i"w"i"x,,i"y"I"z"hialpha="A"|"B"|申'C"|"D"|"E"|"F'|"G"|"H"|T|"J"I"K"I"L"I"M"I"N"I"O"I"P"I"Q"I"R"I"S"I"T"I"U"I"V"I"W"I"X"I"Y"I"Z"=lowalpha|hialphaalphasxtradigit"0"I"1""8"i"9""3"I"4""6"I"7""conditional"的具體表現形式例如a>b,或者c!=5等。屬性action的值是"urlcmd",取值可以采用下面的方式描述:urlcmd:〃commandName[""parameters]下面是每個部分的解釋commandName=identifierparameters=parameter["&"parameters]parameter=parameterName二parameterValueparameterName=identifierparameterValue=anyASCII十identifier=alpha[alpha|digit|extra]*anyASCII=任意的ASCII字符除了'='和'&'需要特殊表示('&'表示為'&';'='需要表示為"=")lowalpha="a"|"b"|"c"|"d"|"e"|"f'|"g"|"h"1"i"i"j"i"k"iTi"m'mV'iV'i"p"i"q,,i,,ri,,si',t"i',u,,i,v,i,,w,,i"x,,|"y,'J"z,,hialpha="A"|"B"|"C"|"D"|"E"|"F'|"G"|"H"|"I"|"J"i"K"i"L"i"M"i"N"i"O"i"P"i"Q"i"R"1"S"i"T"i"U"i"V"i"W"i"X"i"Y"i"Z"alpha=lowalpha|hialphaextra="國,'「,—"digit=tititititi'vi'^iti"8"i"9"一個簡單的〈cmdLine〉的例子如下:_<table>tableseeoriginaldocumentpage8</column></row><table>例子中々mdLin^的意思是當變量a大于4的時候,觸發場景中id為animate1的動畫執行。在本實施例中,"urlcmd"配合"conditional"的使用,可以實現簡單控制、動畫以及終端能力調用操作等各種富媒體場景操作。"urlcmd"是傳統意義上URL概念的一種擴展,URL是統一資源定位符(UniformResourceLocators),其詳細描述在RFC1738中定義。在本實施例中,借助URL格式強大的描述能力去描述本發明方法所包含的操作,包括控制、動畫等,下面以觸發場景中一段動畫和重新設置場景中的焦點位置為例,對本發明的方法作更為詳細的描述1、觸發場景中的動畫如圖1所示,在本實施例中,通過點擊同一個按鍵可以循環觸發執行多段動畫。首次點擊按鍵101,執行動畫lanimatel,將圖形對象A從位置1移動到位置2,第二次點擊按鍵101,執行動畫2animate2,將圖形對象A從位置2移動到位置3,第三次點擊按鍵101,執行動畫3animate3,將圖形對象A從位置3移動到位置4,第四次點擊按鍵101,執行動畫4animate4,將圖形對象A從場景位置4移動到位置1,圖形對象A回到初始的位置,如果繼續點擊按鍵101,重復上述過程。這樣的邏輯在以往的場景描述中如果不借助腳本的功能是無法實現的。在本實施例中,本發明方法用程序可以描述如下,注釋使用<!---->格式描述,此格式是XML語言對于注釋定義的標準格式<!—定義一個矩形,其id為A—><rectid="A,,x=,,100"y=,,100"fill=,,yellow,,/><!—定義矩形A的第一段動畫,即將矩形的x坐標移動到200,動畫的id為animatel,觸發條件為indefinite—>〈animateid-"animate1"action="#A"attributeName=,'x"begin="indefinite"to="200"dur=,,ls',fill="freeze"/>〈!-定義矩形A的第二段動畫,即將矩形的y坐標移動到200,動畫的id為animate2,觸發條件為indefinite--><animateid="animate2"action=,,#A,,attributeName="y"begin="indefinite"to="200"dur=,,1s"fill=,,freeze,,/>〈!-定義矩形A的第三段動畫,即將矩形的x坐標移動到100,動畫的id為animate3,觸發條件為indefinite--><animateid="animate3,,action="#A"attributeName="x"begin="indefinite"to="100"dur=,,ls',fill=,'freeze"/><!—定義矩形A的第四段動畫,即將矩形的y坐標移動到100,動畫的id為animate4,觸發條件為indefinite--><animateid="animate3',action=',#A,,attributeName=,,y"begin="indefinite"to=,,100"dur="ls"fill=,,freeze"/><!—定義第.個命令,其id為init,觸發條件為場景時間為O秒的時刻,即場景開始時—><cmdid="init"begin="Os"><!-定義一個命令行,無條件創建一個變量a,并將其初始化為0--><cmdUneaction=,,SetVar:a=0,,/><!—第一個命令結束—></cmd><!--定義第二個命令,其id為clickFire,觸發條件為按下手機鍵盤的fire鍵,即圖1中的101鍵—><cmdidyclickFire"begin=,'accessKey(FIRE)',><!--定義一個命令行,無條件執行變量a加1的操作--><cmdLinexlink:href="SetVar:a+l"/><!-定義一個命令行,當變量a等于1的時候觸發id為animatel的動畫執行-><cmdlinetest=,,a=l"action="Active:#animater'/><!--定義一個命令行,當變量a等于2的時候觸發id為animate2的動畫執行--><cmdLinetest="a=2,,action="Active:#animate2"Z><!--定義一個命令行,當變量a等于3的時候觸發id為animate3的動畫執行-><cmdLinetest="a=3',action=,,Active:#animate3,'/><!-定義一個命令行,當變量a等于4的時候觸發id為animate4的動畫執行-><cmdLinetest="a=4"action=,,Active:#animate4,,/><!--定義一個命令行,3變量a等于4的時候將變量a的值重新設置為0--><cmdLinetest="a=4"action="SetVar:a=0"/><!一第二個命令結束--></cmd>2、重新設置場景中的焦點位置富媒體場景可以支持其所包含的媒體對象獲得焦點focus,在不支持觸摸屏的設備上,用戶一般使用設備上的導航按鈕或者方向鍵來控制焦點的移動,這種情況下富媒體場景必須保證焦點的移動順序是一個閉合的路徑,例如焦點的移動順序是A、B、C、D、A,這樣做的缺點是場景中只能含有一條閉合的焦點移動路徑,用戶體驗差,如果場景包含多條焦點移動路徑,則需要配合腳本實現。使用本發明的方法解決了上述問題,如圖2所示,表明了通過點擊鍵盤中間按鍵101切換不同的焦點移動路徑,通過點擊按鍵102在某一路徑中依次移動焦點。在本實施例中,本發明方法用程序可以描述為<!-下面包含了第一個焦點移動序列-><!--定義一個矩形,其id為A,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為B的對象--><rectid="A',focusable="true"nav-right="#B"....................../><!-定義一個矩形,其id為B,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為C的對象--><rectid="B,,focusable=,,true"nav-right="#C"....................../><!--定義一個矩形,其id為C,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為D的對象-》<rectid="C',focusable=,,true,,nav-right="#D,,....................../><!-定義一個矩形,其id為D,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為A的對象-〉<rectid="D',focusable="true"nav-right=,,#A"....................../><!--下面包含了第二個焦點移動序列--><!-定義一個矩形,其id為Al,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為Bl的對象--><rectid="Al"focusable="true,,nav-right="#Bl,,....................../><!--定義一個矩形,其id為Bl,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為Cl的對象--><rectid="Bl,,focusable="true',nav-right="#Cl,'....................../><!--定義一個矩形,其id為Cl,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為Dl的對象--><rectid="Crfocusable=,,true"nav-right="#Dl"....................../><!--定義一個矩形,其id為Dl,當導航鍵右鍵,即圖2中按鍵102按下的時候,焦點移動到id為Al的對象--><rectid="Dl"focusable="true"nav-right="#Al"....................../><!-定義第一個命令,其id為init,觸發條件為場景時間為O秒的時刻,即場景開始時-><cmdid="init,,begin=,,0s"><!--定義一個命令行,無條件創建一個變量a,并將其初始化為O--><cmdLineaction=,,SetVar:a=0,,/><!—第一個命令結束--></cmd><!-定義第二個命令,其id為choiceFocus,觸發條件為按下手機鍵盤的fire鍵,即圖2中的101鍵—><cmdid="choiceFocus"begin="acessKey(FIRE),,><!-定義一個命令行,當變量a等于0的時候將焦點設置到id為Al的對象上--><cmdLinetest="a=0"action="SetFocus:#A1"/><!--定義一個命令行,當變量a等于1的時候將焦點設置到id為A的對象上-><cmdLinetest=',a=l"action="SetFocus:#A"/><!—定義一個命令行,無條件執行變量a加1的操作—><cmdLineaction=,,SetVar:a+1"/><!-定義一個命令行,當變量a大于4的時候將變量a的值重新設置為0--><cmdLinetest=,,a>l"action=',SetVar:a=0',/><!-第二個命令結束-></cmd>盡管上面對本發明說明性的具體實施方式進行了描述,但應當清楚,本發明不限于具體實施方式的范圍,對本
技術領域:
的普通技術人員來講,只要各種變化在所附的權利要求限定和確定的本發明的精神和范圍內,這些變化是顯而易見的,一切利用本發明構思的發明創造均在保護之列。權利要求1.一種可擴展的富媒體場景操作方法,其特征在于,包括以下步驟(1)、在富媒體場景中定義有至少一個命令,該命令包含有至少一個命令行,在富媒體場景執行過程中,該命令通過外界事件觸發,并執行其下包含的命令行;(2)、在命令行中定義有一個操作,命令行含有是否執行該操作的判斷條件,判斷條件為無條件執行或某變量的值是否等于、大于、小于、不等于另一個變量或某一數值,如果滿足,則執行,不滿足,則執行下一條命令行或返回。2、根據權利要求1所述的可擴展的富媒體場景操作方法,其特征在于,所述的方法基于XML標記語言,定義有兩個標簽,一個標簽代表命令,另一個標簽代表命令行;命令標簽僅且僅能包含一條或多條命令行標簽,命令標簽包含有id屬性和begin屬性;命令行標簽包含有兩個屬性,一個屬性用于描述執行操作的判斷條件,另一個屬性用于描述操作的內容。3、根據權利要求2所述的可擴展的富媒體場景操作方法,其特征在于,所述的用于描述執行操作判斷條件的命令行標簽屬性的值為conditional,所述的描述操作的內容命令行標簽屬性的值為urlcmd。全文摘要本發明公開了一種可擴展的富媒體場景操作方法包括(1)在富媒體場景中定義有至少一個命令,該命令包含有至少一個命令行,在富媒體場景執行過程中,該命令通過外界事件觸發,并執行其下包含的命令行;(2)在命令行中定義有一個操作,命令行含有是否執行該操作的判斷條件,判斷條件為無條件執行或某變量的值是否等于、大于、小于、不等于另一個變量或某一數值,如果滿足,則執行,不滿足,則執行下一條命令行或返回。本發明通過外界事件觸發本發明定義的命令,執行命令中包含的命令行;再通過命令行中設定操作判斷條件的判斷,來執行,這樣就不需要采用腳本或者其他編程語言,不需要解釋執行或編譯,減小了終端處理的負擔和應用的開發難度。文檔編號G06F17/30GK101281532SQ200810044429公開日2008年10月8日申請日期2008年5月22日優先權日2008年5月22日發明者俸志剛,張驥先,蕾羅,勤費申請人:成都普辰瑞通通訊技術有限公司