一种可扩展的富媒体场景操作方法

文档序号:6459766阅读:136来源:国知局

专利名称::一种可扩展的富媒体场景操作方法
技术领域
:本发明涉及一种可扩展的富媒体场景操作方法。
背景技术
:富媒体有别于传统媒体,它将文本,图形,图片,动画,音视频等多种媒体对象在时间/空间上进行有机结合,提供丰富的表现形式和交互能力。其主要特征是可基于时间或用户交互的基础上产生动态行为。富媒体应用是一种基于富媒体技术发展起来的新兴的应用类型,它的适用范围很广,包括交互式电视,富媒体广告,电子杂志,电子新闻,彩信,交互式服务,如投票,订阅,缴费等很多方面。一个富媒体应用包含一个或多个富媒体场景。富媒体场景描述了富媒体在时间和空间上的布局信息以及交互行为,一个富媒体场景由一个初始场景(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字符除了'='和'&'需要特殊表示('&'表示为'&amp;';'='需要表示为"&equals;")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日发明者俸志刚,张骥先,蕾罗,勤费申请人:成都普辰瑞通通讯技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1