Authorware基础教程:authorware7地ActiveX控件(2)

作者:网络 来源:佚名 更新时间:2008-03-24 点击:

5.3.4  authorware中tts引擎的使用

authorware作为一种面向大众的多媒体软件,其图形化的界面简单易用,极易上手。但也正因为如此,其功能方面相对而言就简单一些。为此,authorware提供了对activex技术的支持。

activex是由微软的ocx、ole技术发展而来的。我们可以在自己的演示程序中插入activex控件,从而实现一些高级的功能。例如,利用microsoft web brower控件,你可以设计出自己的网页浏览器,上网冲浪;利用intervista vrml控件,可以在你的应用中浏览虚拟世界;利用text to speech控件,可以实现英语的即时朗读功能,这就意味着你可以创建类似词霸之类的软件。 

tts引擎能将文字转化为数字音频,它可以实现整句的流畅朗读,而且是标准的美式发音。它允许用户更改声音的频率、语速,功能强劲。因此,利用tts引擎制作英语教学的课件或学件绝对是个不错的主意。

要实现该功能,首先要下载相关组件。

登录ftp://www.mediachance.com/msttss22l.exe,下载msttss22l.exe,安装text to speech声音文件;

登录http://www.mediachance.com/files/spchapi.exe,下载spchapi.exe,安装tts类控件,这一步很重要。当然,如果你已经安装了金山词霸之类的软件,该步可以跳过。实际上,这两个文件可以在词霸的安装目录下找到。

在authorware中插入activex控件的步骤如下。

1)启动authorware 7,确定要插入控件的位置。

2)选择【插入】→【控件】→【activex】菜单。

3)在出现的对话框中,选择“texttospeech class”类控件。单击【确定】按钮,弹出该控件的属性对话框。

4)单击【确定】按钮,使用authorware的默认设置。在流程线上把activex图标名称改为“tts”。

要想让tts引擎开口说话,就得用到callsprite函数。该函数的语法为:

result := callsprite([email protected]"spriteicontitle", #metho

d [, argument...]) 

spriteicontitle为activex控件所在的图标名称,method为activex控件的方法,argument为该控件方法的参数。

5)在流程线上放置一交互图标,拖动群组图标至交互图标的右边。选择文字输入(text entry)交互类型,它用于接受用户输入的单词或句子,并自动放置在系统变量entrytext中。再拖动一计算图标至交互图标的右侧,更改交互类型为按钮交互。调整如图5-5所示。

图5-5 调用tts引擎流程图

在该计算图标中输入: 

callsprite(@"tts",#speak,entrytext)

这句语句可以读出系统变量entrytext所代表的单词或句子。单击【朗读】按钮即可听到浑厚的美语发音。

不过,不要忙着把你的应用打包发行。作为一个优秀的设计者,我们需要先判断用户端有没有安装tts引擎。

6)在流程线的顶部加入计算图标,在计算图标中输入以下语句:

if activexinstalled()=-1 then

    if activexcontrolquery("{2398e32f-5c6e-

11d1-8c65.0060081841de}")=0 then

       systemmessagebox(windowhandle, "系统没

有检测到tts引擎,请安装", "warning",

48)-- 1=ok

    end if

end if

上面这段语句首先判断系统是否支持安装控件,若系统不支持,则不进行安装操作;若支持,则进一步判断是否已安装classid为{2398e32f-5c6e- 11d1-8c65.0060081841de}的tts引擎,如没有则出现提示信息。当然,更友好的方法是让用户选择是否安装,具体请参考jumpout和jumpoutreturn两个函数。要提醒大家注意的是,这两个文件最好和authorware文件存储在同一个文件夹里,否则需指明路径。

运行程序,如图5-6所示。

图5-6  调用tts引擎效果图

5.3.5  microsoft agent在authorware
中的应用

micrrosoft agent(动画精灵)是microsoft公司用来改善和增强用户界面显示效果的一个activex控件,可由任何windows程序调用。

一、在authorware中导入动画精灵时需要如下文件:

1)你必须事先下载动画精灵文件(.acs):如genie.acs、merlin.acs等。

2)引入精灵的外部函数 msagent2.u32,精灵内置动作的实现主要靠它。

3)msagent2.0:micrrosoft agent服务驱动程序。

4)语音引擎(可选),如lernout&hauspie控件。

二、msagent2.0服务程序和角色文件的安装。

1)在程序的开始处加入一个计算图标,写入:

jumpoutreturn(filelocation^"msagent2.0.exe" , "" , "")

安装msagent2.0服务程序。

安装之后会在“c:\windows”文件夹下自动产生一个名为“msagent”的文件夹,说明安装成功。一般你的计算机中如装了office97以上版本,且安装了助手,则这个目录一般都会有的。

2)将动画精灵角色文件(*.acs)复制到“c:\windows\msagent\chars”文件夹下,或者复制到程序文件所在的目录,这样可以通过“filelocation”变量来指定路径。

3)程序文件发布时需要同msagent.u32一起发布。

三、装载“msagent.u32”外部函数。

1)启动authorware单击工具栏上【函数】按钮,在“种类”下拉菜单里选择新文件名,单击【加载】按钮。

2)把“msagent.u32”外部函数引入authorware中。

3)在“custom fuction in msagent2.u32”装进内存后,在窗口中选择以下函数:maload、maremove、mashow、maspeak、maplay。

四、“msagent.u32”外部函数使用详解。

1)载入动画精灵

maramove(id)

清除在此之前出现的动画精灵。

id:=maload("c:\windows\msagent\chars\merlin.acs")

装载一个名为merlin.acs的精灵。

2)显示动画精灵。

mashow(id,x,y,apm.hoi)

功能:在指定的x、y位置显示动画精灵id,参数介绍如下。

l          x、y:为动画精灵的显示位置。

l          apm:apm为1时在精灵上右击会出现快捷菜单。

l          hoi:为1时,精灵在空闲时会自动隐藏。

3)设置动画精灵的动作。

maplay(id,"write")

功能:让动画精灵作指定的动作,参数“write”是指让精灵做书写的动作

4)让动画精灵显示文字和播放声音。

maspeak(id,text,wavefile)

功能:该函数支持英语的语音合成功能,即如果参数“text”的内容是英文,动画精灵会把它读出来,如果“text”的文字是中文的,则只能用“wavefile”文件来代替,声音文件的后缀必须是“*.wav”(目前只支持波形文件的播放),且只能在16位以上的声卡上正常工作。

例如:maspeak(id,"你好”,“c:\test\test.wav”)

5)mahide(id):隐藏动画精灵,也可以通过右键快捷菜单进行隐藏。

6)magestrue(id,x,y):向指定的位置打手势。

7)mastopall(id):停止指定的动画精灵的所有动作。

8)mastatuschanged:当事件发生时,其值有false改变为true。

五、动画精灵函数和部分动作如表5-5和表5-6所示。

表5-5  动作列表

函数名称及参数

功    能

maload

把动画精灵装入内存

maremove(id)

清除动画精灵

mashow(id,x,y,apm,hoi)

显示动画精灵

maspeak(id, “test”, “wavefile”)

显示文字和播放声音

maplay(id, “animation”)

播放内置动作

mahide(id)

隐藏动画精灵

magesture(id,x,y)

向指定位置打手势

mamove(id,x,y)

移动动画精灵到指定位置

表5-6  动作列表

动 作 名 称

含   义

动 作 名 称

含   义

acknowledge

承认

alert

警告

announce

宣布

blink

眨眼

confused

困惑

congratulate

祝贺

decline

拒绝

domagic1

魔法

domagic2

魔法

dontrecognize

不承认

explain

解释

gesturedown

往下姿势

lookdownblink

往下看眨眼

lookup

往上看

lookup

往上看

processing

处理……

read

阅读

sad

悲伤

search

搜寻

searching

寻找……

uncertain

不确定

pleased

高兴

                                 (续表)

动 作 名 称

含   义

动 作 名 称

含   义

suggest

建议

surprised

吃惊

wave

挥手

write

书写

五、mastatusstring中包含的事件介绍如表5-7所示。

表5-7  事件列表

事件的名称

含    义

balloonhide

当agent角色文本气球被隐藏时产生此事件

balloonshow

当agent角色文本气球被显示时产生此事件

click

用户单击agent角色时产生此事件

dblclick

用户双击agent角色时产生此事件

move

用户移动agent角色时产生此事件

show

显示agent角色时产生此事件

hide

隐藏agent角色时产生此事件

dragstart

用户拖动agent角色时产生此事件

dragcomplete

停止agent角色时产生此事件

showtdown

退出agent角色时产生此事件