记得梅林吗?就是那个魔法师老头,一般我们不会注意到他,因为他是msagent的一个角色,而且是window98以上(不包括98,九八需要安装)才有的一个东东.它的特点是角色总是在窗体之上,不会覆盖,而且在任务栏会显示一个小图标.类似于QQ,所以用它来实现web的托盘是很方便的. 下面是代码示例 <html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>新建网页 1</title> <OBJECT id="yuzi" classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"></OBJECT><SCRIPT> var MerlinID; var MerlinACS; yuzi.Connected = true; MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS); Merlin = yuzi.Characters.Character(MerlinID); Merlin.Show(); Merlin.Play("Surprised"); Merlin.Speak("\*欢迎光临1000script*/"); Merlin.Play("GestureLeft"); Merlin.Think("这是一个大型的个人综合网站!"); Merlin.Play("Pleased"); Merlin.Think("本站为您提供网页特效源代码,网站制作素材,及教程,插件下载!"); Merlin.Play("GestureDown"); Merlin.Speak("幼稚之处敬请海涵!"); //Merlin.Hide(); function LoadLocalAgent(CharID, CharACS) { LoadReq = yuzi.Characters.Load(CharID, CharACS); return(true); } </SCRIPT> <Script Language="javascript" For="yuzi" Event="DblClick(CharacterID, Button, Shift, X, Y)"> alert() </script> </head>
<body>
</body>
</html>
实现托盘功能主要任务是在角色上实现事件驱动.而msagent已经带了这个功能,但是写法比较怪: <Script Language="javascript" For="yuzi" Event="DblClick(CharacterID, Button, Shift, X, Y)"> alert() </script> 别的写法好像一概不认的. 通过msagent提供的事件,我们可以轻松做到通过角色将某个窗口调到最前面,或者启动打开某个输入窗口,或者链接到特定的页面.这个在b/s的消息中心模块中会比较好用,一旦有消息进来,角色会说话,告诉你有消息到达,然后在角色上双击就可以调用消息显示页面到最顶层并显示在合适位置,而不用去管消息显示窗口在哪里.
 

|