当前位置:首页>网络学院>网页制作>Dreamweaver教程>文章内容
广告位出租 广告位出租

MSAgent详细解说

[ 来源:www.it55.com | 作者: | 时间:2007-06-27 | 收藏 | 推荐 ] 【

广告位出租

引子:
本来两年前就打算写了,结果拖了这么长时间,近日看到有朋友问及相关的东西,终于决定在还没有完全遗忘之前把自己残存的记忆表达出来,纸、笔...写!
不要说你完全了解 MSAgent,可能你对它的认识也不过是知道而已~~~~~~~~


开篇:
可能 MSAgent 这个名字你不清楚,但如果提起 Office 助手我想在这个目前 MicroSoft 独霸天下的电脑世界应该鲜有人不知道,本文就是交给你如何在网页中调用这个在线尤物。


入题:
一、抛砖引玉
首先,我们先来看一下一个最简单的效果:









看到没有,如果顺利的话,你的屏幕上会出现一个很 Q 的卡通魔法师。对,这就是传说中的 MSAgent !下面讲解一下各个部分的作用:


AgentID 内部索引字串,由用户定义;
AgentACS 所调用的角色文件,可以为浏览者本地或远程文件,后面会有单独的部分说明。
MSAgent.Connected 建立连接;
MSAgent.Characters.Load 读取角色;
MSAgent.Characters.Character 返回角色对象;
Agent.Show 显示角色;


好了,我现在已经把 MSAgent 带到你面前了。什么?什么东西都没看到?只有浏览器的报错!没关系,在后面的文章里,我也会告诉你如何才能看到他,当然,这个看到指的是所有浏览你网页的人!



二、伶牙俐齿
下面,我们就让他来做一点实际的东西 ―― 说话!还是接续上例:



<object style="visibility:hidden" id="MSAgent" classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"></object>
<script language="JavaScript">
//Coded by Windy_sk <windy_sk@126.com> 20040214


var Agent = null;
var AgentID = "Merlin";
var AgentACS = "merlin.acs";
MSAgent.Connected = true;
MSAgent.Characters.Load(AgentID,AgentACS);
Agent = MSAgent.Characters.Character(AgentID);
Agent.LanguageID = 0x0409;
Agent.Show();
Agent.Speak("Hello Everybody, I am Merlin!");
Agent.Think("What shall I do the next?");
</script>



 


 


 


 


 


 



 


 Merlin 说话了(如果要读出声音来的话,需要客户端在 MicroSoft 的网站上下载并安装相应的语音引擎)!这里涉及到这么几个新的东西:


Agent.LanguageID 声明语言种类,0x0409是英文的编号(有关语言编号请参考 www.microsoft.com/globaldev/reference/oslocversion.mspx ),目前如果没有这个声明,或声明为错误的语种,则语言只是一次性完全显示。


Agent.Speak() 和 Agent.Think() 是 MSAgent 的两个语言表达显示行为,只有显示图形的区别。
了解了这些功能,是不是正在陶醉呀?别急,还有更好的东西呢!


三、活灵活现
总是看着一个呆头呆脑的东西一动不动,即使是很 Q ,也会有感到多少的厌烦,下面我们就让他动起来。
这个例子由于调用的是网络文件,所以会慢一点,请耐心等待一下!



<object style="visibility:hidden" id="MSAgent" classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"></object>
<script language="JavaScript">
//Coded by Windy_sk <windy_sk@126.com> 20040214


var Agent = null;
var AgentID = "Merlin";
var AgentACS = "http://agent.microsoft.com/agent2/chars/merlin/merlin.acf";
var AgentStates = "Showing, Hiding, Speaking, Moving";
var AgentAnimations = "GetAttention, GetAttentionReturn, Congratulate, Acknowledge, Read, WriteContinued, WriteReturn, wave";
var AgentLoadRequest, AgentStateRequest, AgentAnimationRequest;


MSAgent.Connected = true;
AgentLoadRequest = MSAgent.Characters.Load(AgentID,AgentACS);
Agent = MSAgent.Characters.Character(AgentID);
Agent.LanguageID = 0x0409;


AgentStateRequest = Agent.get("state", AgentStates);
AgentAnimationRequest = Agent.get("animation", AgentAnimations);


Agent.Show();
Agent.MoveTo(400,300);
Agent.Play("GetAttention");
Agent.Play("GetAttentionReturn");
Agent.speak("Hi, may I have your attention, please?");
Agent.Play("Congratulate");
Agent.speak("So nice to meet you!");
Agent.Play("Think");
Agent.speak("How do think about me?");
Agent.Play("Acknowledge");
Agent.Speak("It's very cool, ya?");
Agent.Play("Read");
Agent.Play("WriteContinued");
Agent.Play("WriteReturn");
Agent.Speak("Oh, I have lots of things to do, see you !");
Agent.Play("wave");
Agent.Speak("Bye-bye!");
Agent.Hide();
</script>



 看到没有?其实只要你善于调动它的积极性,MSAgent 也蛮活泼的!信息观察,不难发现,原来让 MSAgent 动起来,也不过就这么简单:
Agent.MoveTo(x, y) 是角色移动到指定的坐标;
Agent.Play(action) 命令角色做某个动作,动作列表见: msdn.microsoft.com/library/default.asp?url=/library/en-us/msagent/deschar_3pgy.asp (这里需要说明一下,不是所有的角色都支持这些动作的,处理方法后面会有说明!)

(阅读次数:

返回顶部
共2页: 上一页 1 [2] 下一页  
广告位出租

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]