MSAgent 详细解说(四)

四、改头换面
MSAgent = Merlin ? 错!MSAgent 是指一系列动画人物的总称,最常见的 office 中的那些活宝,各位应该都熟悉吧?先来看看下面的这个例子:

1<object classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F" id="MSAgent" style="visibility:hidden"></object>
 1<script language="JavaScript">   
 2//Coded by Windy_sk < [email protected] > 20040214 
 3
 4var Agent = null;   
 5var AgentID, AgentACS;   
 6var AgentLoad = false; 
 7
 8function LoadAgent(NewAgent) {   
 9if(AgentLoad) {   
10MSAgent.Characters.Unload(AgentID);   
11MSAgent.Connected = false;   
12Agent = null;   
13}   
14AgentID = NewAgent;   
15AgentACS = " http://agent.microsoft.com/agent2/chars/ " + NewAgent + "/" + NewAgent + ".acf";   
16MSAgent.Connected = true;   
17MSAgent.Characters.Load(AgentID, AgentACS);   
18AgentLoad = true;   
19Agent = MSAgent.Characters.Character(AgentID);   
20Agent.get("state", "Showing, Hiding");   
21Agent.MoveTo(400, 300);   
22Agent.Show();   
23return;   
24} 
25
26LoadAgent("Merlin");   
27</script>

MSAgent Select :

1<select name="Agent_select" onchange="LoadAgent(this[this.selectedIndex].text)">
2<option>Merlin</option>
3<option>Peedy</option>
4<option>Genie</option>
5<option>Robby</option>
6</select>

看到没有? 原来 MSAgent 还有这么多可爱的造型呢!上面的例程中,我定义了一个读取角色的函数 LoadAgent ,通过这个函数更换角色,其中的大部分的功能在前面的章节中已经介绍了,这里仅仅说明一下,新的方法:

MSAgent.Characters.Unload() 卸载角色,其中 AgentID ,必须是 MSAgent.Characters.Load() 中声明过的

Agent.MoveTo() 这个方法上一节中介绍过,但是如果把它放在 Agent.Show() ,则相当于定义角色的出现位置

其实,MSAgent 绝对不仅仅是那么多,但是 MicroSoft 的官方网站上只提供了那么多……怎么办?可以从他的网站上连接角色,当然可可以从你的网站上呀!你可以在这里 www.microsoft.com/msagent/downloads/user.asp 下载官方角色以及语音引擎(可惜没有中文);当然,如果你有兴趣的话也可以开发一个属于自己的 Agent ,相关开发工具 www.microsoft.com/msagent/downloads/developer.asp ,网上也有很多高手做好的动画人物,推荐一个网站 www.msagentring.org/chars.htm 你也可以自己搜索一下。

安装后角色文件存放在 %WINDOWS%\msagent\chars 目录下的 *.acs 文件,上传到服务器上,直接引用到那个路径就可以了!(你也可以在你的硬盘里搜索一下 *.acs 会有不小的收获呦)这里要说明一下,请自行更改程序中标明网络路径的相关语句,且注意扩展名是 .acs !

如果要让本机支持相应的 MSAgent ,也就是说不用网络调用,只要把 *.acs 文件 copy 到 %WINDOWS%\msagent\chars 目录就可以了,但如果是 *.exe 的安装文件,则会自动把角色文件放置到相应的路径下。

Published At
Categories with 网页设计
Tagged with
comments powered by Disqus