MSAgent 详细解说

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

<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, AgentACS;
var AgentLoad = false;

function LoadAgent(NewAgent) {
if(AgentLoad) {
MSAgent.Characters.Unload(AgentID);
MSAgent.Connected = false;
Agent = null;
}
AgentID = NewAgent;
AgentACS = "http://agent.microsoft.com/agent2/chars/" NewAgent "/" NewAgent ".acf";
MSAgent.Connected = true;
MSAgent.Characters.Load(AgentID, AgentACS);
AgentLoad = true;
Agent = MSAgent.Characters.Character(AgentID);
Agent.get("state", "Showing, Hiding");
Agent.MoveTo(400, 300);
Agent.Show();
return;
}

LoadAgent("Merlin");
</script>

MSAgent Select :
<SELECT name="Agent_select" onchange="LoadAgent(this[this.selectedIndex].text)">
<OPTION>Merlin</OPTION>
<OPTION>Peedy</OPTION>
<OPTION>Genie</OPTION>
<OPTION>Robby</OPTION>
</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 的安装文件,则会自动把角色文件放置到相应的路径下。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Grow your business fast with

Suku