`

Javascript 调用MSAgent

 
阅读更多

(本文假设您使用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>
<!--“欢迎魔法师”代码结束-->

分享到:
评论

相关推荐

    MSAgent动作查看程序

    MSAgent动作查看程序

    MSAgent在Delphi中的应用

    MSAgent在Delphi中的应用MSAgent在Delphi中的应用MSAgent在Delphi中的应用

    c#做的一个Msagent的小程序可以发音的还有动作。

    综上所述,这个项目涉及到了C#编程、.NET Framework的使用、MsAgent的API调用、语音合成技术、动画控制、用户体验设计等多个方面的知识,对于提升C#开发者在交互式应用开发领域的技能具有实际价值。

    小狮子运行程序(MSagent)修补工具 小狮子运行程序(MSagent)修补工具

    小狮子运行程序(MSagent)修补工具是一款专为解决与微软Agent服务相关问题的实用工具。Agent服务是微软操作系统中的一个组件,主要用于实现系统中的语音助手、动画字符和其他交互式功能。在某些情况下,由于系统...

    MsAgent扩展编程实例

    一个扩展后的MsAgent, 重绘提示窗、按钮等,并具有语音功能,具有Office2000中提示窗风格,功能比较强大。另外,你可以到下面网址下载MsAgent编辑生成器(*.acs)来生成属于自己的精灵助手。

    C# MSAgent角色动画

    5. **脚本(Scripts)**:开发者可以编写脚本来控制角色的对话和动作,例如使用VBScript或JavaScript,然后使用`Character.LoadScript`加载执行。 6. **事件(Events)**:MSAgent提供了丰富的事件,如`...

    MSAgent 详细解说(下)

    通过调用这些函数,我们可以创建代理实例、设置角色属性、激活角色并使其执行语音和动作。 2. **源码解析** 对于希望深入理解MSAgent工作原理的开发者,查看源码是必不可少的步骤。通过分析`agent.dll`和`charmap....

    MSAgent Style Critters for your Web Pages

    标题“MSAgent Style Critters for your Web Pages”指的是在网页中使用类似微软Agent技术的动态小动物图形元素。这些小动物通常被设计成互动式的,为网站增添趣味性和交互性,提升用户体验。MSAgent是微软早期推出...

    精灵特效窗体源码(类似于Office中的精灵助手,无需MSAgent支持)

    新增特效窗体(具有涟漪、火焰、溶浆、爆炸、冲击波、雪花、烟花、闪电、动态徽标、屏保、文字、水中倒影、云朵移动等数十种特效,先加这么多吧,懒的再加了,^_^),动态菲屏(20种动态位图特效),主程序内部进行了...

    winForm程序调用media播放器

    在提供的文件名列表中提到的"MSagent"通常与微软的Agent技术有关,它是一种动画角色和语音交互的技术,与直接调用媒体播放器不同。但在winForm中,如果需要结合MSagent与媒体播放,可以考虑创建一个角色来控制媒体...

    msagent 例子2.rar_Agent_ms agent_msagent

    这个实例将帮助初学者理解MS AGENT的基本操作流程和API调用方法。 第二个实例可能涉及更复杂的环境,比如在网络环境下,MS AGENT如何与服务器进行数据交互,获取或发送信息。这可能涉及到网络编程和数据处理的知识...

    MsAgent精灵示例

    1. **示例代码**:可能是用VBScript或JavaScript编写的,演示如何调用Agent API来控制角色读取文本。 2. **角色文件**:包含了角色的图形、声音和动作,用于角色的显示和互动。 3. **配置文件**:用于设置角色的行为...

    MSAgent编程实例VC源代码

    1. **MSAgent API**:了解如何调用MSAgent的API函数来创建、显示和控制Agent角色,如AddCharacter、ShowCharacter、HideCharacter等。 2. **COM理解与应用**:COM是微软提出的一种软件组件模型,它允许不同程序之间...

    MsAgent字符的包装器类

    在项目中使用这个包装器类时,只需实例化一个`MsAgentWrapper`对象,然后调用其方法即可轻松操作MsAgent角色。提供的示例工程`MsAgentdemo.zip`和源代码`MsAgentsrc.zip`将包含具体实现细节,帮助你更好地理解和应用...

    新版精灵助手(VC源码)

    一个功能十分强大,类似于Office 2000的帮助精灵助手,无需MSAgent支持,并提供网上读取、保存并显示新闻文件的功能。 徐景周(jingzhou_xu@163.com) 未来工作室(Future Studio)

    MsAgent扩展编程实例VC源代码

    在项目中,CNotifySink类通常会被注册为角色的事件监听器,当角色触发事件时,CNotifySink的OnNotify方法会被调用。在这里,你可以根据事件类型做出不同的反应,例如播放特定的动画序列,或者执行自定义的业务逻辑。...

    VC++调用Microsoft Agent(小精灵,类似于瑞星小狮子)

    这通常涉及到设置项目的链接器选项,将`msagent.lib`或`msagent.dll`添加到库依赖项中。此外,还需要确保系统已安装了Microsoft Agent服务,否则可能需要用户单独安装。 接下来,通过以下步骤在VC++中实现Microsoft...

Global site tag (gtag.js) - Google Analytics