嗯,是想要写一个提醒一天三回吃药用的东东,源文件在这里:
http://www.tiantiansoft.com/bbs/dispbbs.asp?boardid=40&id=99501
用JavaScript调用Microsoft Agent的在这里:
http://www.tiantiansoft.com/bbs/dispbbs.asp?BoardID=80&ID=12759
各种各样的Agent可以来这里下载:http://www.agentry.net/,下载后把它解压到系统盘的“WINNT\msagent\chars”目录下就成
还有这个,是MSDN上的《操纵Agent》:
http://www.microsoft.com/china/msdn/archives/technic/develop/pius/0228c.asp
在vs.net里,要先把它添加到工具箱才成,右击工具箱,选择“添加/移除项”,在弹出的对话框里选“COM组件”标签,然后呢,选择“Microsoft Agent Control 2.0”,单击确定,就可以把它添加到工具箱了
把控件添加到窗体,实际上是声明了这个:private AxAgentObjects.AxAgent axAgent1;
AxAgentObjects.AxAgent就是agent对象啦,嗯,可以用来load和unload的每一个精灵,只要你机器上有这样子的精灵,你就可以用这个对象调用它
还有一个是AgentObjects.IAgentCtlCharacterEx,可能是角色吧,没查到AgentObjects的每一个东东的具体的含义,character估计是角色,嗯,这个东东下边有Activate、Hide、Listen、MoveTo、Play、Show、Speak、Stop、Think、Wait这些方法,可以用来调用精灵的动作,我用到的是Show(显示)、Play(玩一个动作)、Speak(显示信息)、Hide(隐藏)、Stop(停止动作)
嗯,定义了这些是和agent相关的类级别变量:
//添加Agent组件
private AxAgentObjects.AxAgent axAgent1;
//Agent角色对象
private AgentObjects.IAgentCtlCharacterEx character;
//当前使用的Agent名称
private string agent;
调用都很简单,这个是激活的的:
//激活Agent
string na=textBox4.Text.Trim(); //因为这里我用了一个文本框记录agent的名字
string ana=na + ".acs";
this.agent=na;
//调用Agent
try
{
axAgent1.Characters.Load(na,(object)ana);
character=axAgent1.Characters[na];
//显示Agent
character.Show(null);
}
catch(System.IO.FileNotFoundException mye)
{
MessageBox.Show(mye.Message,"请安装你所输入的Agent",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
这是卸栽Agent的代码:
//停止Agent动作
this.character.Stop(null);
//卸栽Agent
this.axAgent1.Characters.Unload(agent);
剩下的就是几个动作我都嵌在提醒吃药里的,分出来就是:
//显示agent
this.character.Show(null);
this.character.Play("RestPose"); //恢复初始状态
this.character.Play("Congratulate");
this.character.Speak("今天的药都吃完了啦,真是好孩子",null);
这里唯一花时间的就是Play的参数Animation,从《操纵Agent》里可以看到,没同的Agent有没同的参数的,我本来是下载了好几个漂亮的Agent,还搞了一个动作列表的,可是发现好多东东都报那个参数出错,没有定义到这样子的动作
windows安装时默认带了merlin,这里给出merlin的42个动作,加上“RestPose”(恢复初始状态),一共是43个,具体的每个Agent的Animation要上哪查,我也搞没清:
action[0]=" Acknowledge "; //承认
action[1]=" LookDown "; //向下看
action[2]=" Sad "; //悲伤
action[3]=" Alert "; //警告
action[4]=" LookDownBlink "; //向下看眨眼
action[5]=" Search "; //寻找
action[6]=" Announce "; //声明
action[7]=" LookUp "; //向上看
action[8]=" StartListening "; //开始聆听
action[9]=" Blink "; //眨眼
action[10]=" LookUpBlink "; //向下看眨眼
action[11]=" StopListening "; //停止聆听
action[12]=" Confused "; //迷惑
action[13]=" LookLeft "; //向左看
action[14]=" Suggest "; //建议
action[15]=" Congratulate "; //祝贺
action[16]=" LookLeftBlink "; //向左看眨眼
action[17]=" Surprised "; //吃惊
action[18]=" Declines "; //拒绝
action[19]=" LookRight "; //向右看
action[20]=" Think "; //思考
action[21]=" DontRecognize "; //不承认
action[22]=" LookRightBlink "; //向右看眨眼
action[23]=" Wave "; //挥动
action[24]=" Explain "; //解释
action[25]=" MoveDown "; //向下移动
action[26]=" Write "; //书写
action[27]=" GestureDown "; //向下姿势
action[28]=" MoveUp "; //向上移动
action[29]=" Processing "; //计算
action[30]=" GestureUp "; //向上姿势
action[31]=" MoveRight "; //向右移动
action[32]=" Reading "; //阅读
action[33]=" GestureLeft "; //向左姿势
action[34]=" MoveLeft "; //向左移动
action[35]=" Searching "; //寻找
action[36]=" GestureRight "; //向右姿势
action[37]=" Pleased "; //高兴
action[38]=" Writing "; //书写
action[39]=" GetAttention "; //获得注意
action[40]=" Read "; //阅读
action[41]=" Greet "; //问候