Javascript 调用MSAgent

Javascript 调用MSAgent(本文假设您使用WindowsXP或Windows2000操作系统)不知在你漫游互联网时可曾在他开某个网页时看到一个小巫师,蓝色的袍子上满是金黄的星星和月亮十分可爱。他会向你问好,给你介绍这个网站。你一定奇怪,那个巫师是怎么做出来的。其实他并不是网页实现的而是微软的一个ActiveXObject叫MicrosoftAgent。今天,我们来讨论如何在你的网页中加入这个可爱的Agent(他叫Me…

大家好,又见面了,我是你们的朋友全栈君。

(本文假设您使用WindowsXP或Windows2000操作系统) 不知在你漫游互联网时可曾在他开某个网页时看到一个小巫师,蓝色的袍子上满是金黄的星星和月亮十分可爱。他会向你问好,给你介绍这个网站。你一定奇怪,那个巫师是怎么做出来的。其实他并不是网页实现的而是微软的一个ActiveXObject 叫Microsoft Agent。今天,我们来讨论如何在你的网页中加入这个可爱的Agent(他叫Merlin)。

Microsoft Agent的官方角色除了WindowsXP和2000自带的巫师Merlin,还有需要从http://www.microsoft.com/msagent/downloads/user.asp#character下载的附加界色。他们是瓶中妖怪Genie(还记得那首歌吗),鹦鹉Peedy和机器人Robby。下载后的文件是exe文件,直接运行就可以完成安装了。

在我们的网页里可以通过Javascript调用Agent.Control.2来装载我们的Agent。具体方法如下: var chName;

var agent;

var ch;

chName = “Merlin”;

agent = new ActiveXObject(“Agent.Control.2”);

agent.Connected = true;

agent.Characters.Load(chName,chName+”.acs”);

ch = agent.Characters(chName);

代码解释:

chName 是我们要用的角色的名字,因为多出要使用它,所以把它保存成字符型变量了,这里我们把它定义成了”Merlin”。

agent 为Agent.Control.2指定一个对象变量

agent.Connected = true 用来启动于Microsoft Agent的连接

agent.Characters.Load() 读入要使用的角色,他有两个参数,第一个是角色的姓名,第二个是角色存储的文件。

这里顺便说一下,Microsoft Agent角色都保存在Windows目录下的MSAgent文件夹中的chars文件夹内。一般情况下其文件名与角色名是相同的角色文件的扩展名是.acs。

ch = agent.Characters() 让ch成为角色的操纵变量,以后我们只要操纵ch就可以让我们的角色作出各种动作了。比如我们要使用Speak行为就输入ch.Speak(“Hello”);

这部分代码基本上就是个模板,应用时Copy&Paste就Ok了

好了,现在我们角色已经读入了内存。接下来我们来讨论一些常用基本角色行为。

基本角色行为(以merlin为例)

show() 使角色显示在屏幕上。刚刚创建的角色是不能自己现实出来的必须调用show()函数。

hide() 相对于show()的函数,用来让角色从屏幕上隐藏起来(并不从内存中删除)

speak(words) 让我们的角色”说话”,words的内容会显示在一个语言气球内,words为字符串

think(words) words的内容会显示在一个思考气球内,words为字符串

moveto(x,y) 移动到屏幕的(x,y)位置

play(ani) 使用角色动画ani为字符串。其值可以为

Announce Explain Congratulate DontRecongnize Gesturedown Gestureleft Gestureright Gestureup Greet Pleased Read Surprised Idel1_1到Ideal1_4 Idel2_1和Idel2_2

这里仅仅给出关于Merlin的一部分,具体动画指令可参看MSDN的Microsoft Agent Animations for ….里的内容,没有MSDN的朋友也可以到Microsoft的网站去下载agent的帮助文件。

好了,介绍到这里Microsoft agent最简单的应用就已经讲完了,下面来看一个例子吧。

程序事例<html>

<body>

<script>

var chName;

var agent;

var Merlin;

chName = “Merlin”;

agent = new ActiveXObject(“Agent.Control.2”);

agent.Connected = true; agent.Characters.Load(chName,chName+”.acs”);

Merlin = agent.Characters(chName); Merlin.MoveTo(200,200); Merlin.Show();

Merlin.Play(“Announce”);

Merlin.Speak(“欢迎来到detrox的个人主页”);

Merlin.Play(“Explain”);

Merlin.Speak(“咳,这里收录了detrox和他朋友的文章。希望您能喜欢。”);

Merlin.Play(“Idle1_1”);

Merlin.Play(“Pleased”);

Merlin.Speak(“请进吧,我的客人”);

Merlin.MoveTo(600,300);

Merlin.Play(“Surprised”);

Merlin.Speak(“哦对了,大家最近小心非典。多多注意哦”);

Merlin.Play(“Idle1_2”);

Merlin.Play(“GestureUp”);

Merlin.Speak(“祝您在这里愉快”);

Merlin.Play(“Read”);

Merlin.Hide();

</script>

</body>

</html>

这里仅仅讲述了Microsoft agent最最简单用法。Microsoft Agent的目的是为我们提供一个语音命令环境,只是无奈于目前还没有中文的语言包,我们还不能体会到他的便利。您可以参考MSDN里对Agent的语音用法的说明。

 

 

 

动作的说明

Acknowiedge 答谢 Alert 握双拳警惕
Explain 解说 GetAttention 敲击屏幕注意
LookLeftBlink 向左眨眼 LookRight 向右看
Searching 搜索 StarListening 注意听

Announce 吹喇吧进行宣布 Blink 眨眼
GlanceDown 向下扫视 GlanceLeft 向左扫视
LookRightBlink 向右眨眼 LookUp 向上看
StopListening 停止听 Suggest 暗示

Confused 烦恼的 Congratulate 祝贺
GlanceRight 向右扫视 GlanceUp 向上扫视
LookUpBlink 向上眨眼 Pleased 高兴
Surprised 惊讶 Think 摸胡子

Decline 拒绝 DoMagic1 魔法一
Greet 问候 LookDown 向下看
Processing 处理 Read 写一次
Uncertain 不确定 Wave 致意

DoMagic2 魔法二 DontRecognize 笠耳听
LookDownBlink 向下眨眼 LookLeft 向左看
Reading 反复写 Sad 忧愁
Write 写一次 Writing 反复写

eg:

<!–“欢迎魔法师”代码开始–>
<SCRIPT language=”JavaScript”>
<!–
function crml(nid)
{
try
{
nid=new ActiveXObject(“Agent.Control.2”);
nid.Connected = true;
nid.Characters.Load(“”);
return nid;
}
catch (err)
{
return false;
}
}

function chplay()
{
if (ml=crml (“ml”))
{
var MerlinID;
var MerlinACS;
Merlin = ml.Characters.Character(MerlinID);
Merlin.MoveTo(200,450);
Merlin.Show();
Merlin.Play(“Gestureup”);
Merlin.Speak(“圣诞来临之际,我 给您献上真心祝福”);
Merlin.Play(“Gestureright”);
Merlin.Speak(“为您捎去圣诞的欢欣”);
Merlin.Play(“GestureLeft”);
Merlin.Speak(“让温暖萦绕您的心灵”);
Merlin.MoveTo(580,457);
Merlin.Play(“GestureUp”);
Merlin.Speak(“愿您”);
Merlin.Play(“GestureRight”);
Merlin.Speak(“事业健步”);
Merlin.Play(“GestureLeft”);
Merlin.Speak(“平凡职场扬眉吐气”);
Merlin.Play(“GestureRight”);
Merlin.Speak(“我 祝您”);
Merlin.Play(“GestureLeft”);
Merlin.Speak(“前程似锦”);
Merlin.Play(“GestureRight”);
Merlin.Speak(“薪薪向荣”);
Merlin.Play(“GestureLeft”);
Merlin.Speak(“步步高升”);
Merlin.Hide();
Merlin.MoveTo(390,460);
Merlin.Show();
Merlin.Play(“GestureUp”);
Merlin.Speak(“祝圣诞快乐”);

Merlin.Hide();
}
}
//–>
</SCRIPT>

<SCRIPT language=”JavaScript”>
<!–
chplay()
–></SCRIPT>
<!–“欢迎魔法师”代码结束–>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicate premium15激活码【2021免费激活】

    (navicate premium15激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
    86
  • GSLB算法

    GSLB算法1)基于流量的负载均衡算法:主要采用负反馈的原理来控制各个POP节点上的流量,负反馈是一种基于偏差的调度算法.2)同时基于往返时间和流量的负载均衡算法:要考虑的负载均衡策略有两个:一个是用户访问POP节点的往返时间,另一个是流量负载,这两个均衡策略同时使用来保证GSLB将用户访问调度到合适节点…

    2022年6月5日
    54
  • java代码块

    java代码块

    2021年9月29日
    53
  • CMD关闭端口命令「建议收藏」

    CMD关闭端口命令「建议收藏」1.查询端口netstat-ano|findstr”123456″TCP127.0.0.1:12340.0.0.0:0LISTENING67892.查询端口名tasklist|findstr”6789″studio64.exe6789Console…

    2022年7月20日
    30
  • 秒杀全网!研发、运营必备实用工具网站

    程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理(不断更新中~)。

    2022年4月5日
    69
  • 今儿下午疲惫极了_形容疲惫至极的诗句

    今儿下午疲惫极了_形容疲惫至极的诗句回家的公车上人也特别的多,春天来了,气温渐温,街上的颜色也丰富起来,我一路的走,一路的观望,看着一张张的笑脸,我也一路的想,想我爱的人和爱我的人,不觉得走神了。下车没两步,我摔了一交,结结实实的。手中的电脑包抛了老远,我一下子倒在了路边,脑子嗡响了一下,暂时的记忆就没了。大约有那么两三秒,也许是我摔倒的动静太大了,感觉周围的目光都在朝我这边看,一时间的尴尬,没顾得上身上的土,站起来就往住的方向猛走

    2026年1月17日
    5

发表回复

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

关注全栈程序员社区公众号