(本文假设您使用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> <mce:script type="text/javascript"><!-- 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(); // --></mce:script> </body> </html>

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

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhou__zhou/archive/2007/09/25/1800187.aspx

Javascript 调用MSAgent(调用office助手显示动画)相关推荐

  1. anacoda的spyder在调用matplotlib的时候无法显示动画效果【学习笔记】

    ipython console的默认设置将图像结果显示在终端,但是这样显示存在的问题是无法显示动画效果,因此需要将动画效果显示到单独的窗口,按照下面的截图即可显示. 方法一.按照如下截图显示设置,重启 ...

  2. Android WebView 和 javaScript的互相调用(二)

    原文出处:http://blog.csdn.net/wangtingshuai/article/details/8635787 WebView相关阅读 Android WebView 和 javaSc ...

  3. Android WebView 和 javaScript的互相调用(一)

    原文出处:http://blog.csdn.net/wangtingshuai/article/details/8631835 WebView相关阅读 Android WebView 和 javaSc ...

  4. python win32转pdf 横版_Python调用Win32com实现Office批量转PDF

    Python调用Win32com实现Office批量转PDF 需求 一直以来有将诸如Word之类的Office文档转为PDF的需求,此前的方法是挨个打开文档,手动另存为PDF,此方法费时费力,尤其在电 ...

  5. 菜鸟与 cef 的邂逅之旅(三):Cef3 中 C++ 与 JavaScript 的互相调用

    一.引言 我们要实现一个强大的浏览器控件,必须要能够实现 C++ 与 JavsScript 的互相调用. 于是,在我研究了: 菜鸟与 cef 的邂逅之旅(一):cef 源码获取与编译 菜鸟与 cef ...

  6. [译]深入理解JavaScript函数执行—调用栈,事件循环和任务等

    Web 开发者,或者前端工程师(我们更喜欢别人这么称呼)现如今几乎能做所有的工作,从扮演一个浏览器内部交互性的角色,到制作电脑游戏.桌面控件.跨平台手机应用,甚至还可以把它写在服务器端(最流行的是no ...

  7. android 读取wps_安卓APP调用WPS打开Office文件并返回APP

    原创文章:转载请注明出处 安卓APP调用WPS打开Office文件并返回APP功能实现(附wps工具) 在某些app(如OA系统app)开发工程中,往往会遇到编辑Office文档的需求,而我们一般采取 ...

  8. QT与JavaScript交互/Qt调用JS脚本

    QT与JavaScript交互/Qt调用JS脚本 简介 QT中调用JS函数 JS中调用QT函数 完整代码 mainwindow.h mainwindow.cpp html.html Qt调用JS脚本 ...

  9. JavaScript文件中调用AngularJS内部方法或改变$scope变量

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...

  10. javascript 堆栈_JavaScript调用堆栈-它是什么以及为什么它是必需的

    javascript 堆栈 The JavaScript engine (which is found in a hosting environment like the browser), is a ...

最新文章

  1. GAN(Generative Adversarial Network,GAN)模型之:InfoGAN、WGAN、DCGAN模型
  2. 视频会议进入云时代,所有企业的必答题
  3. 关于站库分离渗透思路总结
  4. serialversionuid的作用_为什么阿里Java规约要求谨慎修改serialVersionUID字段
  5. 防火墙技术之--状态防火墙ASPF(2)
  6. wordpress 后台慢_WordPress网站优化加速的5个技巧
  7. xshell常用指令
  8. Team viewer 未就绪,请检查您的连接
  9. hp服务器系统如何用u盘恢复,软硬件技巧 篇三:HP战66之恢复U盘制作,以及恢复系统之体验感想...
  10. python获取扫描枪数据线_【转】C#中判断扫描枪输入与键盘输入
  11. 4G物联网卡使用记录——使用方法及被锁卡处理
  12. 魔法币 java_网易2018校招笔试编程题-魔法币 java实现
  13. 解决HP电脑windows10系统提示未插入音频设备
  14. 二手行业能找回“消失的五年”吗?
  15. linux日志配置含义,Linux操作系统中的日志功能详解
  16. PHP实现阿里云金融级实人认证人脸识别h5案例源码,带签名
  17. 深入理解黑客攻击-缓冲区溢出攻击
  18. 有手就行, RAW格式批量转JPG
  19. centos7的freeswitch1.10.3自动安装脚本
  20. php网站重复安装,LInux下PHP安装

热门文章

  1. Excel2016 文件运行宏,出现可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用
  2. 360有支持linux系统的吗,观点|360 安全卫士 for Linux 使用结果
  3. (附源码)计算机毕业设计ssm大众点评管理系统
  4. CMMI5级认证含金量高吗?
  5. java多商户商城系统源码下载
  6. 【调音小栈】跳羚PRO12PRO22声卡搭载机架跳线设置教程
  7. 华为端到端项目管理流程_从项目流程管理解析华为项目管理
  8. 解决microsoft visual c++ build tools安装包丢失或损坏
  9. 【原创】CSS3动画总结对比 / 带思维导图 / 启发小案例
  10. 高等代数_第2章:证明_Laplace定理