(本文假設您使用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;</p><p> var agent; </p><p> var ch;</p><p> chName = "Merlin";</p><p> agent = new ActiveXObject("Agent.Control.2"); </p><p> agent.Connected = true; </p><p> agent.Characters.Load(chName,chName+".acs"); </p><p> ch = agent.Characters(chName);<br />
代碼解釋:
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></p><p><body></p><p><mce:script type="text/javascript"><!--<br />var chName;</p><p>var agent;</p><p>var Merlin;</p><p>chName = "Merlin"; </p><p>agent = new ActiveXObject("Agent.Control.2"); </p><p>agent.Connected = true; agent.Characters.Load(chName,chName+".acs"); </p><p>Merlin = agent.Characters(chName); Merlin.MoveTo(200,200); Merlin.Show(); </p><p>Merlin.Play("Announce");</p><p>Merlin.Speak("歡迎來到detrox的個人首頁"); </p><p>Merlin.Play("Explain"); </p><p>Merlin.Speak("咳,這裡收錄了detrox和他朋友的文章。希望您能喜歡。"); </p><p>Merlin.Play("Idle1_1"); </p><p>Merlin.Play("Pleased"); </p><p>Merlin.Speak("請進吧,我的客人"); </p><p>Merlin.MoveTo(600,300); </p><p>Merlin.Play("Surprised"); </p><p>Merlin.Speak("哦對了,各位節日快樂."); </p><p>Merlin.Play("Idle1_2");</p><p>Merlin.Play("GestureUp"); </p><p>Merlin.Speak("祝您在這裡愉快"); </p><p>Merlin.Play("Read"); </p><p>Merlin.Hide();<br />// --></mce:script> </p><p></body> </p><p></html><br />
這裡僅僅講述了Microsoft agent最最簡單用法。Microsoft Agent的目的是為我們提供一個語音命令環境,只是無奈於目前還沒有中文的語言套件,我們還不能體會到他的便利。您可以參考MSDN裡對Agent的語音用法的說明。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zhou__zhou/archive/2007/09/25/1800187.aspx