3. 调用角色数据:
载入动画角色
ThisForm.Olecontrol1.Characters.Load("merlin", "merlin.ACS")
oChar = ThisForm.Olecontrol1.Characters("merlin")
oChar.MoveTo(RAND()*600, RAND()*600)
oChar.Show
*将角色数据文件中的动画名称加入动画文件列表框,有许多动画在文件中不能找到,因此通过载入动画名称让用户选择。
For Each cAnimName in oChar.AnimationNames
ThisForm.AnimNames.AddItem(cAnimName)
ochar.play(canimname)*可能有的动画循环播放,因此有的动画可能无法显示。
EndFor
开场介绍
ochar.languageid=0x409
oChar.Speak("Hello \emp\there!|Hey, \pau=600\all you boys and girls.|Greetings, and felicitations.")
oChar.Speak("Welcome to DevCon, my friends.")
播放指定的角色动画
OChar.Play(ThisForm.lbxAnimNames.DisplayValue)
阅读指定文本
oChar.languageid=0x409*指定语言种类,0X409代表美式英语
oChar.Speak(ThisForm.txtSpeak.Value')
由于TTS引擎不支持中文,因此如果要阅读中文,可以按如下方法:
将要阅读的汉语文本通过录音制作成WAV文件,如SNDFILE.WAV
oChar.languageid=0x804;//指定语言种类,0X804代表中文
oChar.speak(‘你好!’,’SNDFILE.WAV’);//SNDFILE.WAV及为制作的声音文件
停止循环播放的动画
oChar.Stop
卸载动画角色
With ThisForm
.Olecontrol1.Characters.Unload("merlin")
.AnimNames.Clear
Endwith
加载阅读文本,也可以直接输入内容
Cfile=Getfile()
Nhandle=Fopen(Cfile)
Hend=Fseek(Nhandle,0,2)
If Hend<=0
Messagebox("文件无法打开!",16,"提示窗口")
Return
Else
=Fseek(Nhandle,0,0)
Cstring=Fread(Nhandle,Hend)
=Fclose(Nhandle)
Endif
Thisform.Txtspeak.Value=Cstring
综合演示
Ochar.Languageid=0x409
With Ochar
.Play("Greet")
.Play("Restpose")
.Speak("Hello!")
.Play("Announce")
.Speak("I Am Merlin.")
.Play("Pleased")
.Speak("It Is Nice To Meet You!")
.Moveto(250,500)
.Speak("Now,Here Is A Magic Trick.")
.Play("Domagic1")
.Play("Domagic2")
.Play("Pleased")
.Play("Restpose")
.Speak("Thank You!")
.Play("Wave")
.Speak("Goodbye")
.Play("Hide")
Endwith
关闭表单
Thisform.Release
