隨筆-16  評論-8  文章-30  trackbacks-0

          (本文假設您使用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;
              var agent; 
              var ch;
              chName = "Merlin";
              agent = new ActiveXObject("Agent.Control.2"); 
              agent.Connected = true; 
              agent.Characters.Load(chName,chName+".acs"); 
              ch = agent.Characters(chName);

          代碼解釋:

          • 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>
          <body>
          <script>
          var chName;
          var agent;
          var Merlin;
          chName = "Merlin"; 
          agent = new ActiveXObject("Agent.Control.2"); 
          agent.Connected = true; agent.Characters.Load(chName,chName+".acs"); 
          Merlin = agent.Characters(chName); Merlin.MoveTo(200,200); Merlin.Show(); 
          Merlin.Play("Announce");
          Merlin.Speak("歡迎來到detrox的個人主頁"); 
          Merlin.Play("Explain"); 
          Merlin.Speak("咳,這里收錄了detrox和他朋友的文章。希望您能喜歡。"); 
          Merlin.Play("Idle1_1"); 
          Merlin.Play("Pleased"); 
          Merlin.Speak("請進吧,我的客人"); 
          Merlin.MoveTo(600,300); 
          Merlin.Play("Surprised"); 
          Merlin.Speak("哦對了,大家最近小心非典。多多注意哦"); 
          Merlin.Play("Idle1_2");
          Merlin.Play("GestureUp"); 
          Merlin.Speak("祝您在這里愉快"); 
          Merlin.Play("Read"); 
          Merlin.Hide(); 
          </script> 
          </body> 
          </html>

          這里僅僅講述了Microsoft agent最最簡單用法。Microsoft Agent的目的是為我們提供一個語音命令環境,只是無奈于目前還沒有中文的語言包,我們還不能體會到他的便利。您可以參考MSDN里對Agent的語音用法的說明。

          posted on 2005-06-10 14:35 楚客 閱讀(474) 評論(0)  編輯  收藏 所屬分類: HTML
          主站蜘蛛池模板: 荥经县| 金湖县| 遂平县| 交口县| 辉县市| 鹤岗市| 克东县| 黔江区| 清镇市| 巴中市| 隆德县| 左权县| 木里| 林芝县| 洛隆县| 德阳市| 大余县| 繁昌县| 靖州| 黄冈市| 依安县| 宣汉县| 锡林郭勒盟| 金寨县| 墨竹工卡县| 石渠县| 姜堰市| 綦江县| 翼城县| 吉水县| 蒙山县| 永昌县| 克山县| 桓台县| 连州市| 兴仁县| 汉中市| 黄龙县| 渝中区| 安龙县| 岳阳市|