-- 作者:superpch
-- 发布时间:2007/8/11 23:31:05
-- 用Agent+ASP技术制作语音聊天室
--------------------以下为程序内容,按文章中出现的顺序分块排序 <!--定义"AgentControl"--> <OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F codeBase=#VERSION=2,0,0,0 id=Agent> </OBJECT> <!--定义L&H TruVoice Text-To-Speech American English --> <OBJECT classid=clsid:B8F2846E-CE36-11D0-AC83-00C04FD97575 codeBase=#VERSION=6,0,0,0 id=TruVoice width="14" height="14"> </OBJECT> ______________________________________________________________ 尝试从微软Agent角色目录中装载 Set LoadRequestUNC = Agent.Characters.Load ("Peedy", "Peedy.acs") If LoadRequestUNC.Status <> 0 Then ' 如果失败便尝试从微软服务器下载 Set LoadRequestURL = Agent.Characters.Load ("Peedy", "http://agent.microsoft.com/agent2/chars/peedy/peedy.acf";) Else ' 现在产生一个Peedy实例 Set Peedy = Agent.Characters("Peedy") End If _____________________________________________________________ <HTML> <BODY> <h3 align="center"><font color="#0000FF">Welcome to My Chatroom!</font></h3> <FORM method="POST" action="default.asp"> <p align="center">Your name please: <input type="text" name="txtUsername" size="20"> <input type="submit" value="OK" name="btnOK"></p> </FORM> <p align="center"><a href="download.htm">Click here to go to download page.</a></p> </BODY> </HTML> _______________________________________________________________________ <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart Application("message")="" '发言内容 Application("expression")="" '表情 Application("sender")="" '发言者ID Application("globalid")=0 '发言总序号 End Sub </SCRIPT> _______________________________________________________________________ <% Session("username") = Server.HtmlEncode(Request.Form("txtUsername")) Session("personalid")=0 %> <HTML> <HEAD> <TITLE>Welcome to My Chatroom!</TITLE> </HEAD> <frameset border=0 frameSpacing=0 cols="98,*" frameBorder=0> <frame name="agent" src="agent.asp"> <frameset rows="196,68,*"> <frame name="display" src="display.asp"> <frame name="refresh" src="refresh.asp"> <frame name="message" src="message.asp"> </frameset> </frameset> <frameset> </frameset> </HTML> ________________________________________________________________ <HTML> <BODY BGCOLOR="#006699" TEXT="#FFFFFF"> <!--定义"AgentControl"--> <OBJECT classid=clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F codeBase=#VERSION=2,0,0,0 id=Agent> </OBJECT> <!--定义L&H TruVoice Text-To-Speech American English --> <OBJECT classid=clsid:B8F2846E-CE36-11D0-AC83-00C04FD97575 codeBase=#VERSION=6,0,0,0 id=TruVoice width="14" height="14"> </OBJECT> <SCRIPT language=VBScript> Dim Peedy Dim LoadRequestUNC Dim LoadRequestURL Dim GetShowAnimation Sub Window_OnLoad LoadCharacter ' 设置Agent的语言代号 Peedy.LanguageID = &H0409 ' 让Peedy出现 Peedy.MoveTo window.event.screenX-100,window.event.screenY-100 Peedy.Show ' 好啦,Peedy可以开口说话了 Peedy.Speak "Welcome to my chatroom!" Peedy.Play "Greet" End Sub Sub Agent_RequestComplete(ByVal Request) ' 如果是从微软服务器装载ACF角色的请求结束 If Request = LoadRequestURL Then ' 如果申请下载失败 If Request.Status = 1 Then Msgbox "无法从服务器下载Peedy,可能服务器太忙。" Exit Sub ' 如果成功 ElseIf Request.Status = 0 Then ' 产生一个实例 Set Peedy = Agent.Characters("Peedy") ' 预取Peedy的部分动画效果 Set GetShowAnimation = Peedy.Get ("state", "showing, speaking") Peedy.Get "animation", "Blink, Greet, Pleased, Explain, Think, GestureRight,Idle1_1,Idle2_2, Announce, Uncertain", False End If ' 如果是请求预取动画效果的请求结束 ElseIf Request = GetShowAnimation Then ' 如果失败 If Request.Status = 1 Then Msgbox "下载动画的请求失败,可能服务器太忙。" Exit Sub End If End If End Sub ' 装载Agent角色 Sub LoadCharacter On Error Resume Next ' 尝试从微软Agent角色目录中装载 Set LoadRequestUNC = Agent.Characters.Load ("Peedy", "Peedy.acs")
If LoadRequestUNC.Status <> 0 Then ' 如果失败便尝试从微软服务器下载 Set LoadRequestURL = Agent.Characters.Load ("Peedy", "http://agent.microsoft.com/agent2/chars/peedy/peedy.acf";) Else ' 产生一个Peedy实例 Set Peedy = Agent.Characters("Peedy") End If End Sub </SCRIPT> </BODY> </HTML> ________________________________________________________________ <HTML> <HEAD> <META HTTP-EQUIV="REFRESH" CONTENT=3 URL="refresh.asp"> </HEAD> <BODY> <SCRIPT language=VBScript> Sub Window_OnLoad <% If Session("personalid") < Application("globalid") Then %> self.parent.display.document.write("<table width=100% border=0 cellPadding=0 cellSpacing=0><font color=#0000FF>"+"<%=Application("sender")%>"+"</font>: "+"<%=Application("message")%>"+"</table>") self.parent.display.scroll 0, 20000000 self.parent.agent.Peedy.Speak "<%=Application("message")%>" self.parent.agent.Peedy.Play "<%=Application("expression")%>" <% Session("personalid") = Application("globalid") End If %> End Sub </SCRIPT> </BODY> </HTML> ____________________________________________________________________ <% Application.Lock If Request.Form("txtMessage") <> "" Then Application("message") = Server.HtmlEncode(Request.Form("txtMessage")) Application("sender") = Session("username") Application("expression") = Request.Form("rdoExpression") Application("globalid") = Application("globalid") + 1 End If Application.UnLock %> <HTML> <HEAD> <STYLE type=text/css> .smalltext {font-size: 9pt} </STYLE></HEAD> <BODY BGCOLOR="#006699" TEXT="#FFFFFF" onload="document.frmMessage.txtMessage.focus();"> <FORM METHOD="POST" ACTION="message.asp" name=frmMessage> <p class="smalltext"> You are welcome,<%=Session("username")%>
</p> <p class="smalltext"> Choose an expression:<br> <input type="radio" value="Idle1_1" checked name="rdoExpression">Normal <input type="radio" value="Explain" name="rdoExpression">Explain <input type="radio" value="Greet" name="rdoExpression">Greet <input type="radio" value="Congratulate" name="rdoExpression">Congratulate <input type="radio" value="Decline" name="rdoExpression">Decline <input type="radio" value="Pleased" name="rdoExpression">Pleased <input type="radio" value="Think" name="rdoExpression">Think <input type="radio" value="Announce" name="rdoExpression">Announce <input type="radio" value="Uncertain" name="rdoExpression">Uncertain <input type="radio" value="GestureRight" name="rdoExpression">Gesture Right <input type="radio" value="DontRecognize" name="rdoExpression">Don't Recognize <input type="radio" value="GetAttention" name="rdoExpression">Get Attention <input type="radio" value="DoMagic2" name="rdoExpression">Do Magic </p> <p class="smalltext"> Message:<input name="txtMessage" type="TEXT" size=66> <input type="submit" name="Submit" value="Submit"> </p> </FORM> </BODY> </HTML>
|