当前位置: 首页 > 图文教程 > 网页制作 > Dreamweaver > MSAgent 详细解说(三)

Dreamweaver
用代码“写”出扫描线效果图片
DHTML实例解析:用HTC统一定制表单样式
网页瘦身小技巧---“分割大法”
简单实用的网页表格特效
巧用样式表,让文本框与按钮变个样
网页工作原理
网页图片特效小技巧
如何防止及消除垃圾代码的产生
提高页面显示速度的秘技
用DW MX制作导航下拉菜单
Dreamweaver MX应用表格排序
Dreamweaver查找替换的技巧
用DreamWeaver定制网站的颜色
Dreamweaver MX进阶教程(七)创建基于框架的网页
Dreamweaver MX进阶教程(九)使用用于框架的“行为”
Dreamweaver MX进阶教程(八) 操作框架
Dreamweaver MX进阶教程(十)制作居中的网页
Dreamweaver MX进阶教程(十六)制作可拖动表格
Dreamweaver MX进阶教程(二十一)制作虚线
Dreamweaver MX进阶教程(十三)在Dreamweaver 中使用上标和下标

Dreamweaver 中的 MSAgent 详细解说(三)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-23   浏览: 34 ::
收藏到网摘: n/a

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

<object style="visibility:hidden" id="MSAgent" classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"></object>
<script language="JavaScript">
//Coded by Windy_sk <[email protected]> 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 (这里需要说明一下,不是所有的角色都支持这些动作的,处理方法后面会有说明!)

Agent.Hide() 隐藏角色(不是释放角色,通过 Agent.Show() 可以再次显示)
Agent.get(Request, list) 预载相关 MSAgent 动画数据,MSAgent人物数据文件支持单结构角色文件(.acs,角色数据与动画数据存于同一个文件),也支持分离结构角色文件(.acf,角色数据存于.acf中,动画数据存于.aca中)。基于本地硬盘和网络调用均可采用这两种模式,当调用网络 acf 文件时,由于角色数据与动画数据分别下载,所以需要预载相关动画数据,使用 acs 文件(一般没有本地 acf 文件的可能性),不需要预载。

AgentLoadRequest, AgentLoadRequest 和 AgentAnimationRequest 这三个参数本例并没有实际用到,返回应相关操作的状态对象(相当于 readystatus 属性),在调用网络 acf 文件时有比较实际的用途,这个会在后面说明!