Javascript 調用MSAgent(調用office助手顯示動畫)

來源:互聯網
上載者:User

(本文假設您使用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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.