Javascript 調用MSAgent(Desc:網頁中出現魔法巫師)

來源:互聯網
上載者: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;

  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的語音用法的說明。

 

 

 

動作的說明

Acknowiedge     答謝               Alert               握雙拳警惕
Explain         解說               GetAttention        敲擊螢幕注意 
LookLeftBlink   向左眨眼           LookRight           向右看
Searching       搜尋               StarListening       注意聽  
 
Announce        吹喇吧進行宣布     Blink               眨眼
GlanceDown      向下掃視           GlanceLeft          向左掃視
LookRightBlink  向右眨眼           LookUp              向上看
StopListening   停止聽             Suggest             暗示

Confused        煩惱的             Congratulate        祝賀
GlanceRight     向右掃視           GlanceUp            向上掃視
LookUpBlink     向上眨眼           Pleased             高興
Surprised       驚訝               Think               摸鬍子

Decline         拒絕               DoMagic1            魔法一
Greet           問候               LookDown            向下看
Processing      處理               Read                寫一次
Uncertain       不確定             Wave                致意

DoMagic2        魔法二             DontRecognize       笠耳聽
LookDownBlink   向下眨眼           LookLeft            向左看
Reading         反覆寫             Sad                 憂愁
Write           寫一次             Writing             反覆寫

 eg:

<!--“歡迎魔法師”代碼開始-->
<SCRIPT language="JavaScript">
<!--
function crml(nid)
{
try
{
nid=new ActiveXObject("Agent.Control.2");
nid.Connected = true;
nid.Characters.Load("");
return nid;
}
catch (err)
{
return false;
}
}

function chplay()
{
if (ml=crml ("ml"))
{
var MerlinID;
var MerlinACS;
Merlin = ml.Characters.Character(MerlinID);
Merlin.MoveTo(200,450);
Merlin.Show();
Merlin.Play("Gestureup");
Merlin.Speak("聖誕來臨之際, 周剛 給您獻上真心祝福");
Merlin.Play("Gestureright");
Merlin.Speak("為您捎去聖誕的歡欣");
Merlin.Play("GestureLeft");
Merlin.Speak("讓溫暖縈繞您的心靈");
Merlin.MoveTo(580,457);
Merlin.Play("GestureUp");
Merlin.Speak("願您");
Merlin.Play("GestureRight");
Merlin.Speak("事業健步");
Merlin.Play("GestureLeft");
Merlin.Speak("平凡職場揚眉吐氣");
Merlin.Play("GestureRight");
Merlin.Speak(" 周剛 祝您");
Merlin.Play("GestureLeft");
Merlin.Speak("前程似錦");
Merlin.Play("GestureRight");
Merlin.Speak("薪薪向榮");
Merlin.Play("GestureLeft");
Merlin.Speak("步步高升"); 
Merlin.Hide();
Merlin.MoveTo(390,460);
Merlin.Show();
Merlin.Play("GestureUp");
Merlin.Speak("祝聖誕快樂");

Merlin.Hide();
}
}
//-->
</SCRIPT>

<SCRIPT language="JavaScript"> 
<!--
chplay()
--></SCRIPT>
<!--“歡迎魔法師”代碼結束-->

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.