现在的位置: 首页 > 综合 > 正文

◎Vbs调用MsAgent组件的新代码,可是问题是,为什么双击单击不能同时支持?

2013年09月18日 ⁄ 综合 ⁄ 共 1803字 ⁄ 字号 评论关闭

arract=array("Read","RestPose","Write","Process","Pleased","Idle3_1","Idle1_1","Show","GestureUp")

Set fso=CreateObject("scripting.filesystemobject")

Set ffile=fso.OpenTextFile("d:/shi.txt")

 

strAgentName = "Merlin"

strAgentPath = "C:/Windows/Msagent/Chars/" & strAgentName & ".acs"

Set objAgent = WScript.CreateObject("Agent.Control.2","agent_")

objAgent.Connected = TRUE

objAgent.Characters.Load strAgentName, strAgentPath

Set objCharacter = objAgent.Characters.Character(strAgentName)

objCharacter.LanguageID = &H409

objcharacter.MoveTo 900, 600

objcharacter.Show

objcharacter.MoveTo 900, 0

i=0

timespeak="good " & GetTimeOfDay()

objcharacter.Speak(timespeak)

objCharacter.Play("DoMagic1")

objcharacter.speak("背个唐诗给你们听!")

objCharacter.Play("DoMagic2")

Do While ffile.AtEndOfLine<>True

str=ffile.ReadLine

objcharacter.speak(str)

If i<=7 Then 

   i=i+1 

Else

   i=0

End If

speak=arract(i)

objCharacter.Play(speak)

Loop

Sub agent_click(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y)

objcharacter.StopAll

If shift=1 Then

biao=0

Else

biao=1000

End if

Do While 1=1

Randomize

objcharacter.moveto Int(601*Rnd()),Int(901*Rnd()),biao

loop

End Sub

 

Sub agent_dblclick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal

Y)

   objcharacter.StopAll

If shift=1 Then 

   objCharacter.Think "朋友们,再见了,我要回去睡觉了"

   objcharacter.hide

   WScript.Sleep 4000

   WScript.Quit

Else

   objcharacter.moveto 450,300

   objcharacter.play("Pleased")

   objcharacter.speak ("来让我老梅林给你们唱首歌吧,唱什么呢?")

   objcharacter.speak "郑伊健-虫儿飞,看看我老梅林唱的怎么样!","d:/ge.wav"

   objcharacter.moveto 900,0

End If

 

End Sub

Function GetTimeOfDay()

     Dim TimeOfDay

     Dim h

     h = Hour(Now())

     If h < 12 Then

         TimeOfDay = "Morning"

     ElseIf h < 17 Then

         TimeOfDay = "Afternoon"

     Else

         TimeOfDay = "Evening"

     End If

     GetTimeOfDay = TimeOfDay

End Function

Do

WScript.Sleep 1000

Loop Until ScriptComplete

这是我编写的vbs调用agent组件的代码,运行起来倒也是蛮有趣的,可是系统不是只支持鼠标双击,就是只响应鼠标单击,真是奇怪!不知道原因何在?

 

抱歉!评论已关闭.