Мастерская Delphi программирования. | ||||||||||||||
| ||||||||||||||
Это конечно не Delphi, но тоже достаточно интересно. Использование персонажа в оформлении Web-странички делает ее более оригинальной и привлекательной. Как использовать агента с Web-сервера я не знаю, не силен в Internet технологиях, но можно использовать локальную установку Ms Agent на машине пользователя. Этим и займемся. Будем использовать персонаж Мерлина как путеводителя по страничке. Чтобы Мерлин появился необходимо в коде странички задать объект: <Object ID="Agent" Width=0 Height=0 ClassID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F" CodeBase="#VERSION=2,0,0,0"> </Object>Далее пишем несколько функций которые помогут сделать из Мерлина говорливого коментатора. Предаю слово Мерлину. Пускай он сам рассказывает о себе. Если Вы задержите указатель мыши на тексте функции скрипта, Мерлин даст свои пояснения. <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- var X, Y; var Merlin;Переменные X, Y содержат координаты места где произошло событие, и куда должен переместиться Мерлин. Merlin содержит указатель на интерфейс IAgentCtlCharacterEx. Через него осушествляются все манипуляции с персонажем. function doAgent() { Agent.Characters.Load ("Merlin", "merlin.acs"); Merlin = Agent.Characters.Character("Merlin"); Merlin.Commands.Add('Demo', 'Загружаем редактор персонажей', ''); Merlin.Show(); anchor.click(); X -= 60; Y += 50; Merlin.Hide(); Merlin.MoveTo(X, Y); Merlin.Show(); Merlin.Play("Greet"); Merlin.Speak("Привет !!! Я Мерлин, твой помошник"); }Первая строка скрипта заставляет объект загрузить файл персонажа. Затем назначаем глобальной переменной Merlin указатель на интерфейс. Третьей строкой добавляем собственную комманду во всплывающее меню персонажа. Вызвав метод Show() заставляем показаться Мерлина на экране в точке с координатами 0,0. Комманды написанные до метода Speak() имитируют магическое действие. Мерлин исчезает с экрана в точке с координатами 0,0, а появился в другом месте. Последние две строки - это приветствие пользователю. Мерлин говорит слова приветствия и кланяется. function doClick() { X = window.event.screenX; Y = window.event.screenY; } function doCoord() { X = window.event.screenX; Y = window.event.screenY; Merlin.MoveTo(X+50, Y-30); } } function doOver(s) { doCoord(); Merlin.GestureAt(X, Y); Merlin.Speak(s); } function doOut() { Merlin.StopAll(); Merlin.Play('RestPose'); } function doHide() { Merlin.Hide(); Agent.Characters.Unload("Merlin"); }Скрываем персонаж и выгружаем его из памяти. Это действие происходит когда вы выгружаете эту страничку. function doArc() { doCoord(); Merlin.Speak('Здесь находится архив. Там много полезного. В том числе мой дистрибутив.'); Merlin.Play('Reading'); } function doHobby() { doCoord(); Merlin.Play('Announce'); Merlin.Speak('Отдыхаем ? ...'); Merlin.Play('RestPose'); } // --> </SCRIPT>Последние две функции делают действия Мерлина более разнообразными. В них проигрываются разные анимации методом Play(). <SCRIPT Language="JavaScript" For="Agent" Event="Command(UserInput)"> <!-- switch(UserInput.Name) { case "Demo" : Demo(); break; } function Demo() { Merlin.MoveTo(100,100); a = document.links[2].href; document.links[2].href = 'kkpreview.zip'; document.links[2].click(); document.links[2].href = a; } // --> </SCRIPT>Этот скрипт показывает как обрабатывается комманда добавленная к персонажу вовремя загрузки. По этой комманде происходит загрузка дистрибутива редактора персонажей. Ребята из Microsoft уверяют, что он будет работать только в Internet Explorer. | ||||||||||||||
| ||||||||||||||
http://www.valler.narod.ru |