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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 下载pycharm安装教程_tc简单程序开发工具教程

    下载pycharm安装教程_tc简单程序开发工具教程Pycharm可以说是一款进行Python开发功能强大的编辑器。鉴于近期很少有关最新版本的Pycharm安装教程,为了能够帮助刚刚学习Python的朋友们。宋宋老师又给大家准备了一版,会介绍Pycharm的安装和注意事项,希望能够在大家学习Python的道路上起到一点微薄之力。文章分为四部分: Pycharm简介 Pycharm下载 Pycharm安装 Pycharm配置 Pycharm简介PyCharm是由JetBrains打造的一款PythonIDE,J

    2022年8月26日
    6
  • linux添加路由提示不允许的操作_Linux修改默认路由

    linux添加路由提示不允许的操作_Linux修改默认路由1、linux添加路由、查看路由状态、删除路由如下添加路由:routeadd-net192.168.1.44netmask255.255.255.0gw192.168.1.1查看路由状态:route-n删除路由:routedel-net192.168.20.0netmask255.255.255.02、如果想让重启也生效,可以把添加路由命令写在/etc/rc.local中,即可vi/etc/rc.local在最后加下如下routeadd-net192.1

    2022年9月1日
    7
  • C#使用WebProxy实现代理访问webservice

    C#使用WebProxy实现代理访问webservice1.问题描述标题写的有点含糊不清,不好意思语言表达能力欠佳。。事情是这样的!事情是这样的,在A服务器上有一个webservice,B计算机和C计算机都可以ping通A服务器,但是C计算机的ip备案了而B计算机的ip没有备案,导致我写的一个小程序放在B计算机上调用A服务器的webservice的时候提示我ip非法。那么该如何让这个小程序能在B计算机上正常使用呢?答案是代理服务器!2.w…

    2022年6月21日
    67
  • 关于php一句话木马

    关于php一句话木马服务器上发现被植了很多木马,而且还让人肆意使用…NND使用方法也很简单,本地提交文件指向提交文件,里面的php代码就会被执行

    2022年5月21日
    30
  • spring boot 过滤器_kotlin从入门到进阶实战

    spring boot 过滤器_kotlin从入门到进阶实战过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。

    2022年8月23日
    8
  • struts 2 漏洞学习总结

    struts 2 漏洞学习总结struts2最近几个漏洞分析&稳定利用payloadhttp://drops.wooyun.org/papers/9020×00背景看到网上关于struts2利用的文章非常多,但是对于漏洞触发跟踪分析的文档比较少,闲来无事跟踪了一下struts最近吵得比较火的两个漏洞,研究了一下能够稳定利用的payload。0x01S2-008

    2022年7月19日
    19

发表回复

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

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