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

Dreamweaver
Dreamweaver MX进阶教程(十八)使用css样式制作细线表格
Dreamweaver MX进阶教程(二十二)制作反馈表单(email发送)
Dreamweaver MX进阶教程(二十)使用一象素透明图像固定单元格宽度
Dreamweaver MX进阶教程(十一)使用“层”布局网页
Dreamweaver MX进阶教程(十四)使用server-side include(服务器端包括)
Dreamweaver MX进阶教程(十五)插入具有辅助功能的表格
Dreamweaver MX进阶教程(十九)防止英文字符撑破表格
Dreamweaver MX进阶教程(十七)设置表格的属性
Dreamweaver MX进阶教程(十二)在居中页面使用层
DW MX 设计留言本实战(1)
DW MX 设计留言本实战(4)
DreamWeaver,经典50问(9)
DreamWeaver,经典50问(8)
DreamWeaver,经典50问(7)
DreamWeaver,经典50问(3)
DreamWeaver,经典50问(10)
DreamWeaver,经典50问(4)
DreamWeaver,经典50问(6)
巧用背景颜色和间距快速制作出细边线表格
DW MX 2004代码编辑新功能

Dreamweaver 中的 MSAgent 详细解说(三)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-23   浏览: 26 ::
收藏到网摘: 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 文件时有比较实际的用途,这个会在后面说明!