分享
 
 
 

添加聪明角色 让网页动起来

王朝html/css/js·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

当你打开Microsoft Word后,画面上就会出现一个Office 助手,看着孙悟空不但会不停地变换角色,而且还会根据情况,出现相应的提示信息(如图1)。并且都始终显示在最上面,比起菜单、按钮、提示框等大家非常熟悉的人机交互界面来说,不但界面简洁明了,而且交互性更强,更具人性化,这就是Agent角色互动。

假如你的软件或者主页上也采用角色互动卡通画来显示帮助信息,也许会更具吸引力和竞争力。动心了吧,别着急,跟我来看个究竟。

这种角色互动卡通画是由Microsoft Agent软件制作而成,它可以扮演向导、娱乐节目主持人、助手、送信人等角色。它具有简洁的操作界面、更具人性化的交互功能和简便统一的编程方法。

Agent现在已发展到2.0版,作为一种应用程序服务器,主要是提供一种易于理解和使用的操作界面,接受用户指令、代替用户完成某些繁杂工作,或者为用户提供帮助。它具有其他工具所无法比拟的优点:

1. 采用基于COM的ActivX控件方式,因此它可以很轻易加入到应用程序中,改善用户操作界面。

2. Agent动画角色具有生动、有趣的动作。其本身是一个“AlwaysOnTop”窗口,只显示角色动画本身,隐藏窗口背景,视觉效果更好。

3. 结合了语音功能,角色动画不仅能说话,而且还会根据用户发出的声音指令加以识别和执行。

所需组件的安装

要发挥Agent角色动画的作用,必须安装相应的组件,但是假如你的系统是windows 2000/XP的话,就可以不用安装下面的组件,系统已经预装了;假如没有安装,可以到微软网站下载安装程序(http://www.microsoft.com/PRodUCts/msagent/downloads.htm),然后自解压执行安装。

1. Agent服务器程序(AgentSVR.EXE):运行于Windows平台,为其他调用Agent服务的客户程序提供服务,是Agent的核心组件(C:\WINNT\MSAgent\AgentSVR.EXE)。

进入讨论组讨论。

2. TTS引擎:TTS引擎将文本转换为声音并输出到音频设备中,Agent将根据该引擎输出的声音控制动画的口型变化 (C:\PROGRAM FILES\ COMMON FILES\SPEECH ENGINES \MICROSOFT\TTS)。

3. Agent角色数据文件:存储有角色信息(提示信息框的格式、命令、图片、声音文件等);用户也可以用角色编辑器(ACE.EXE)编辑自己的角色数据文件(C:\WINNT\MSAgent\ CHARS\MERLIN.ACS;C:\WINNT\ SRCHASST\CHARS\COURTNEY.ACS,\EARL.ACS,\ROVER.ACS)。

4. 语音识别引擎(SPEECH ENGINE):处理用户从音频设备中传入的语音命令,以进行语音输入/输出处理(控制面板→声音、语音和音频设备→语音)。

Agen的基本属性

CHARacters:其类型为IAgentCHARACTEREX,取得角色句柄;

CHARacter:CHARACTERS的一个属性,通过CHARACTERID取得角色句柄;

CHARacterid:代表特定的角色动画,如MERLIN、GINIE、ROVER等Windows 2000、Office2000以及以上版本所提供的四种角色动画,其扩展名为.ACS或者.ACG;

Show:控制角色动画的显示,参数Speed为整形变量,代表显示的速度;

Hide:隐藏动画角色,参数CHARacterid,指定隐藏的对象;

Moveto:移动动画角色到指定位置,参数(X,Y)为指定的位置;

Play:控制角色执行指定的动画,参数Animation表示动画名称,存储于角色数据文件里;

Speak:通过TTS引擎和语音识别引擎读指定文本,目前不支持中文。参数为指定的文本内容,同时可以在文本中通过加标记TAG控制文本阅读时的语气、强调字符串、停顿时间、阅读的速度;语气标记‘\CHR=WHISFER(NORMAL\MONOTONE’,强调字符串‘\EMP\强调字符’,停顿时间’\PAU=停顿时间(以毫秒为单位)\’,阅读速度’\SPD=速度\’,另外还有其它是一种标记,可以找Microsoft网站查找,每一分离的字符串都用双引号加以表示;

Languageid:指定语言种类,整形变量,0X409代表美式英语,0X804代表中文。

角色动画实例

预备工作已经完成,现在我们就立即来着手在应用成程序中做一个角色动画效果(注:本文为了便于演示,应用程序仅包括一个窗口,编程工具采用VFP7.0)。

进入讨论组讨论。

1. 安装Agent控件:选择菜单工具“选项”,在ActiveX列表框中选择Microsoft Aent Control 2.0,安装在工具面板上。

2. 新建一应用程序,仅需一个表单,如图2。

图2 表单设计样式

3. 调用角色数据:

载入动画角色

ThisForm.Olecontrol1.Characters.Load("merlin", "merlin.ACS")

oChar = ThisForm.Olecontrol1.Characters("merlin")

oChar.MoveTo(RAND()*600, RAND()*600)

oChar.Show

*将角色数据文件中的动画名称加入动画文件列表框,有许多动画在文件中不能找到,因此通过载入动画名称让用户选择。

For Each cAnimName in oChar.AnimationNames

ThisForm.AnimNames.AddItem(cAnimName)

ochar.play(canimname)*可能有的动画循环播放,因此有的动画可能无法显示。

EndFor

开场介绍

ochar.languageid=0x409

oChar.Speak("Hello \emp\there!Hey, \pau=600\all you boys and girls.Greetings, and felicitations.")

oChar.Speak("Welcome to DevCon, my friends.")

进入讨论组讨论。

播放指定的角色动画

OChar.Play(ThisForm.lbxAnimNames.DisplayValue)

阅读指定文本

oChar.languageid=0x409*指定语言种类,0X409代表美式英语

oChar.Speak(ThisForm.txtSpeak.Value')

由于TTS引擎不支持中文,因此假如要阅读中文,可以按如下方法:

将要阅读的汉语文本通过录音制作成WAV文件,如SNDFILE.WAV

oChar.languageid=0x804;//指定语言种类,0X804代表中文

oChar.speak(‘你好!’,’SNDFILE.WAV’);//SNDFILE.WAV及为制作的声音文件

停止循环播放的动画

oChar.Stop

卸载动画角色

With ThisForm

.Olecontrol1.Characters.Unload("merlin")

.AnimNames.Clear

Endwith

加载阅读文本,也可以直接输入内容

Cfile=Getfile()

Nhandle=Fopen(Cfile)

Hend=Fseek(Nhandle,0,2)

If Hend<=0

Messagebox("文件无法打开!",16,"提示窗口")

Return

Else

=Fseek(Nhandle,0,0)

Cstring=Fread(Nhandle,Hend)

=Fclose(Nhandle)

Endif

Thisform.Txtspeak.Value=Cstring

进入讨论组讨论。

综合演示

Ochar.Languageid=0x409

With Ochar

.Play("Greet")

.Play("Restpose")

.Speak("Hello!")

.Play("Announce")

.Speak("I Am Merlin.")

.Play("Pleased")

.Speak("It Is Nice To Meet You!")

.Moveto(250,500)

.Speak("Now,Here Is A Magic Trick.")

.Play("Domagic1")

.Play("Domagic2")

.Play("Pleased")

.Play("Restpose")

.Speak("Thank You!")

.Play("Wave")

.Speak("Goodbye")

.Play("Hide")

Endwith

关闭表单

Thisform.Release

综合演示效果如图3。

进入讨论组讨论。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有