设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[网页制作] 会说话的助手小人代码

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-29 16:43:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
会说话的助手小人代码

                                                                                               
                    要完成此效果把如下代码加入到<body>区域中
<Object ID="AgentControl" Width=0 Height=0
  ClassID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"
  CodeBase="#VERSION=2,0,0,0">
</Object>
<Object ID="L&HTruVoice" Width=0 Height=0
  ClassID="CLSID:B8F2846E-CE36-11D0-AC83-00C04FD97575"
  CodeBase="#VERSION=6,0,0,0">
</Object>
<Script Language="java script">
<!--//
// * Character Objects
var Merlin;
// * Variables
var UsedChars;
var MerlinID;
var MerlinACS;
var MerlinURL;
var MerlinStates;
var MerlinAnimations;
var MerlinReq;
var MerlinStatesReq;
var MerlinAnimationsReq;
var MerlinLoaded;
var LoadReq;
var HideReq;
var MerlinLeftX, MerlinCenterX, MerlinRightX;
var MerlinTopY, MerlinCenterY, MerlinBottomY;
// * Initialize
UsedChars = "Merlin";
// * Merlin
MerlinID = "Merlin";
MerlinACS = "merlin.acs";
MerlinURL = "http://typhoon.huzhoucity.com/zh/merlin.acf";
MerlinStates = "Showing, Hiding, Speaking, Moving, Gesturing, Idling, Hearing, Listening";
MerlinAnimations = "GestureLeft, Surprised";
MerlinLoaded = false;

Window_OnLoad();
function Window_OnLoad() {
   
    AgentControl.Connected = true;
    MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS);
    if (MerlinLoaded) {
        SetCharObj();
    }
    CheckLoadStatus();
}
function LoadLocalAgent(CharID, CharACS) {
   
    AgentControl.RaiseRequestErrors = false;
    LoadReq = AgentControl.Characters.Load(CharID, CharACS);
    AgentControl.RaiseRequestErrors = true;
    if (LoadReq.Status != 1) {
        return(true);
    }
    return(false);
}
function SetCharObj() {
   
    Merlin = AgentControl.Characters.Character(MerlinID);
    Merlin.LanguageID = 0x409;
}
function CheckLoadStatus() {
   
    if (!MerlinLoaded) {
        window.status = "Loading " + MerlinID + " Character.  Please Wait...";
        MerlinReq = AgentControl.Characters.Load(MerlinID, MerlinURL);
        return(false);
    }
    window.status = "";
    AgentIntro();
    return(true);
}
function LoadError() {
    var strMsg;
    window.status = "";
    strMsg = "Error Loading Character: " + MerlinID + "\n";
    strMsg = strMsg + "This Microsoft Agent Script requires the character(s):\n";
    strMsg = strMsg + UsedChars;
    alert(strMsg);
}
function GetScreenPositions() {
    var ScreenWidth = window.screen.width;
    var ScreenHeight = window.screen.height;
    if ((ScreenWidth == 0) || (ScreenHeight == 0)) {
        ScreenWidth = 800;
        ScreenHeight = 600;
    }
    MerlinCenterX = (parseInt(ScreenWidth / 2) - parseInt(Merlin.Width / 2));
    MerlinRightX = (ScreenWidth - Merlin.Width);
    MerlinCenterY = (parseInt(ScreenHeight / 2) - parseInt(Merlin.Height / 2));
    MerlinBottomY = (ScreenHeight - Merlin.Height);
}
function InitAgentCommands() {
   
    Merlin.Commands.RemoveAll();
    Merlin.Commands.Caption = "My Menu Name";
    Merlin.Commands.Add("ACO", "Advanced Character Options", "Advanced Character Options");
}
function AgentIntro() {
    GetScreenPositions();
    InitAgentCommands();

    Merlin.MoveTo(MerlinLeftX, MerlinTopY);
    Merlin.Show();
    Merlin.Speak("Welcome to java script Fairyland!");
    Merlin.Think("What day for today?");
    Merlin.Play("GestureLeft");
    Merlin.Speak("Yes!Today is April Fools' Day !");
    Merlin.Play("Surprised");
Merlin.Speak("Thanks Yours Visit!");
  
    Merlin.Hide();
}
//-->
</Script>
<Script Language="java script" For="AgentControl" Event="RequestComplete(RequestObject)">
<!--//
   
{
    switch (RequestObject) {
    case MerlinReq :
        if (RequestObject.Status == 0) {
            SetCharObj();
            if (MerlinStates != "") {
                window.status = "Loading " + MerlinID + " States.  Please Wait...";
                MerlinStatesReq = AgentControl.Characters(MerlinID).Get("State", MerlinStates, true);
            }
            else if (MerlinAnimations != "") {
                window.status = "Loading " + MerlinID + " Animations.  Please Wait...";
                MerlinAnimationsReq = AgentControl.Characters(MerlinID).Get("Animation", MerlinAnimations, true);
            }
            else {
                MerlinLoaded = true;
                CheckLoadStatus();
            }
        }
        else {
            LoadError();
        }
        break;
    case MerlinStatesReq :
        if (RequestObject.Status == 0) {
            if (MerlinAnimations != "") {
                window.status = "Loading " + MerlinID + " Animations.  Please Wait...";
                MerlinAnimationsReq = AgentControl.Characters(MerlinID).Get("Animation", MerlinAnimations, true);
            }
            else {
                MerlinLoaded = true;
                CheckLoadStatus();
            }
        }
        else
        {
            LoadError();
        }
        break;
    case MerlinAnimationsReq :
        if (RequestObject.Status == 0)
        {
            MerlinLoaded = true;
            CheckLoadStatus();
        }
        else
        {
            LoadError();
        }
        break;
    case HideReq :
        AgentControl.Characters.Unload(MerlinID);
        break;
    } // end switch
}
//-->
</Script>
<Script Language="java script" For="AgentControl" Event="Command(UserInput)">
<!--//
   
    var BadConfidence;
    BadConfidence = 10;
    if (UserInput.Confidence <= -40)
    {
            }
    else if ((UserInput.Alt1Name != "") && (Math.abs(Math.abs(UserInput.Alt1Confidence) - Math.abs(UserInput.Confidence)) < BadConfidence))
    {
            }
    else if ((UserInput.Alt2Name != "") && (Math.abs(Math.abs(UserInput.Alt1Confidence) - Math.abs(UserInput.Confidence)) < BadConfidence))
    {
            }
    else
    {
              switch(UserInput.Name) {
        case "ACO" :
            AgentControl.PropertySheet.Visible = true;
            break;
        }
    }
//-->
</Script>

<Script Language="java script" For="AgentControl" Event="Bookmark(BookmarkID)">
</Script>

<Script Language="java script" For="AgentControl" Event="Click(CharacterID, Button, Shift, X, Y)">
</Script>
<Script Language="java script" For="AgentControl" Event="DblClick(CharacterID, Button, Shift, X, Y)">
<!--
        Merlin.StopAll();
    if (!Merlin.HasOtherClients) {
        if (Merlin.Visible) {
            HideReq = Merlin.Hide();
        }
        else {
            AgentControl.Characters.Character.Unload(MerlinID);
        }
    }
//->
</Script>
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-4-28 02:54 , Processed in 0.184848 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表