Javascript 调用MSAgent(调用office助手显示动画)
(本文假设您使用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助手显示动画)相关推荐
- anacoda的spyder在调用matplotlib的时候无法显示动画效果【学习笔记】
ipython console的默认设置将图像结果显示在终端,但是这样显示存在的问题是无法显示动画效果,因此需要将动画效果显示到单独的窗口,按照下面的截图即可显示. 方法一.按照如下截图显示设置,重启 ...
- Android WebView 和 javaScript的互相调用(二)
原文出处:http://blog.csdn.net/wangtingshuai/article/details/8635787 WebView相关阅读 Android WebView 和 javaSc ...
- Android WebView 和 javaScript的互相调用(一)
原文出处:http://blog.csdn.net/wangtingshuai/article/details/8631835 WebView相关阅读 Android WebView 和 javaSc ...
- python win32转pdf 横版_Python调用Win32com实现Office批量转PDF
Python调用Win32com实现Office批量转PDF 需求 一直以来有将诸如Word之类的Office文档转为PDF的需求,此前的方法是挨个打开文档,手动另存为PDF,此方法费时费力,尤其在电 ...
- 菜鸟与 cef 的邂逅之旅(三):Cef3 中 C++ 与 JavaScript 的互相调用
一.引言 我们要实现一个强大的浏览器控件,必须要能够实现 C++ 与 JavsScript 的互相调用. 于是,在我研究了: 菜鸟与 cef 的邂逅之旅(一):cef 源码获取与编译 菜鸟与 cef ...
- [译]深入理解JavaScript函数执行—调用栈,事件循环和任务等
Web 开发者,或者前端工程师(我们更喜欢别人这么称呼)现如今几乎能做所有的工作,从扮演一个浏览器内部交互性的角色,到制作电脑游戏.桌面控件.跨平台手机应用,甚至还可以把它写在服务器端(最流行的是no ...
- android 读取wps_安卓APP调用WPS打开Office文件并返回APP
原创文章:转载请注明出处 安卓APP调用WPS打开Office文件并返回APP功能实现(附wps工具) 在某些app(如OA系统app)开发工程中,往往会遇到编辑Office文档的需求,而我们一般采取 ...
- QT与JavaScript交互/Qt调用JS脚本
QT与JavaScript交互/Qt调用JS脚本 简介 QT中调用JS函数 JS中调用QT函数 完整代码 mainwindow.h mainwindow.cpp html.html Qt调用JS脚本 ...
- JavaScript文件中调用AngularJS内部方法或改变$scope变量
需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...
- javascript 堆栈_JavaScript调用堆栈-它是什么以及为什么它是必需的
javascript 堆栈 The JavaScript engine (which is found in a hosting environment like the browser), is a ...
最新文章
- GAN(Generative Adversarial Network,GAN)模型之:InfoGAN、WGAN、DCGAN模型
- 视频会议进入云时代,所有企业的必答题
- 关于站库分离渗透思路总结
- serialversionuid的作用_为什么阿里Java规约要求谨慎修改serialVersionUID字段
- 防火墙技术之--状态防火墙ASPF(2)
- wordpress 后台慢_WordPress网站优化加速的5个技巧
- xshell常用指令
- Team viewer 未就绪,请检查您的连接
- hp服务器系统如何用u盘恢复,软硬件技巧 篇三:HP战66之恢复U盘制作,以及恢复系统之体验感想...
- python获取扫描枪数据线_【转】C#中判断扫描枪输入与键盘输入
- 4G物联网卡使用记录——使用方法及被锁卡处理
- 魔法币 java_网易2018校招笔试编程题-魔法币 java实现
- 解决HP电脑windows10系统提示未插入音频设备
- 二手行业能找回“消失的五年”吗?
- linux日志配置含义,Linux操作系统中的日志功能详解
- PHP实现阿里云金融级实人认证人脸识别h5案例源码,带签名
- 深入理解黑客攻击-缓冲区溢出攻击
- 有手就行, RAW格式批量转JPG
- centos7的freeswitch1.10.3自动安装脚本
- php网站重复安装,LInux下PHP安装
热门文章
- Excel2016 文件运行宏,出现可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用
- 360有支持linux系统的吗,观点|360 安全卫士 for Linux 使用结果
- (附源码)计算机毕业设计ssm大众点评管理系统
- CMMI5级认证含金量高吗?
- java多商户商城系统源码下载
- 【调音小栈】跳羚PRO12PRO22声卡搭载机架跳线设置教程
- 华为端到端项目管理流程_从项目流程管理解析华为项目管理
- 解决microsoft visual c++ build tools安装包丢失或损坏
- 【原创】CSS3动画总结对比 / 带思维导图 / 启发小案例
- 高等代数_第2章:证明_Laplace定理