Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: 1.Help!- Microsoft Agent Editor? Добавлено: 23.11.02 08:58  

Автор вопроса:  Kykymba

Об'ясните кто может как работать с Microsoft Agent Editor?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 MKE



Вопросов: 15
Ответов: 14
 Профиль | | #1 Добавлено: 28.11.02 18:51

Автор: {Шатрыкин Иван}, {VBNet}
Добавлено: 09.10.2001  {" предыдущая}  {следующая "}   {все материалы}

Введение

Многим из Вас уже, наверняка, приглянулся один из персонажей Microsoft Agent. Agent, на мой взгляд, - это одно из наиболее интересных нововведений фирмы Microsoft за последние годы, а стандартная поставка ядра Agent с Windows 2000, делает очень перспективным его включение в Ваши программы. Более того, на сайте Microsoft доступен бесплатный редактор для создания новых персонажей Agent, а в сети Интернет появляются сайты, на которых представлены большие коллекции персонажей. Так что же мешает программистам более активно использовать Agent в своих разработках? Скорее всего незнание этого замечательного компонента. В этой статье я попытаюсь рассказать Вам о методике работы с ним.

Обзор возможностей Agent

А что мы тут, собственно говоря, хотим описывать? Давайте для начала разберемся, нужен ли нам этот Agent или нет. Microsoft Agent версии 2.0 может очень многое. Во-первых, Вы можете "оживить" свои программы, если в ней будет жить маленький, интеллектуальный, веселый "персонаж". Он может грустить, веселиться, перемещаться по экрану и т.д., а если к нему долго не обращались, то даже может засыпать! Во-вторых, как Вы относитесь к тому, если Agent будет говорить? А если по-русски? В-третьих, Вы сможете спрашивать пользователя не с помощью стандартного MsgBox, а при помощи красивых диалоговых окон (таких, как в Microsoft Office), "привязанных" к Agent, дополнительно потрудившись, или "разорившись" ;-). Неужели всё это ещё не убедило Вас в написании нескольких дополнительных строк кода, необходимых для включения Agent в Ваши программы?

Ссылка на объект "Персонаж"

Итак, для того, чтобы поработать с Agent, нам потребуется ссылка на объект типа IAgentCtlCharacter или IAgentCtlCharacterEx. В принципе, можно использовать любой из этих типов, но предпочтительнее Ex, так как IAgentCtlCharacter устарел и оставлен из соображений совместимости. Получив ссылку, мы сможем работать с персонажем. Ссылку можно получить двумя основными способами. Первый из них наиболее простой, но и менее гибок, второй обладает хорошей переносимостью, но он сложнее.

Первый способ

Этот способ использует раннее связывание для получения ссылки. Делается все очень просто. Помещаем на форму объект Agent, предварительно добавив его на панель компонентов с помощью диалогового окна "Components" (нажмите Ctrl+T, для его вызова - см.рис.1).

 

Рис. 1. Диалог выбора компонентов

Теперь в событие Form_Load впишите: 'переменная для ссылки
Dim Agent As IagentCtlCharacterEx
'загружаем персонаж
Agent1.Characters.Load "my character", "genie.acs"
'ссылка на персонаж
Set Genie = Agent1.Characters ("my character")
Или
'переменная для ссылки
Dim Agent As IagentCtlCharacterEx
'загружаем стандартного персонажа
Me.Agent1.Characters.Load "Default"
'ссылка на персонаж
Set Agent = Me. Agent1.Characters.Character("Default")
Итак, как Вы уже заметили здесь тоже два варианта, первый загружает указанный персонаж, в данном случае "Гений" (из папки Chars), второй загружает персонаж "по умолчанию". В любом случае ссылка на объект в нашем распоряжении.

Второй способ

Используем позднее связывание, этот метод хорош в случае, если Вы не знаете, есть ли у Вашего клиента Microsoft Agent. Здесь Вы можете предусмотреть такую ситуацию и продолжить работу без использования Agent. 'переменные для ссылок
Private MSAgent As Object
Private AgentChar As Object
'включаем обработчик ошибок
On Error Resume Next
Set MSAgent = CreateObject("Agent.Control.2")
'здесь можно проверить, установлен ли Agent на компьютере
If Err.Number Then
    MsgBox "Agent не найден на этом компьютере!"
Else
'подключаемся к серверу Agent
MSAgent.connected = True
'загружаем стандартного персонажа
MSAgent.Characters.Load "Default"
'ссылка на персонаж
Set AgentChar = MSAgent.Characters("Default")
End If
Естественно, что Вы также можете загрузить любого персонажа, указав в методе Load файл, содержащий его.

Важно: При завершении своей программы не забудьте удалить ссылки на созданные объекты. Это, кстати, касается не только Agent.

Обратите внимание, что дальше по тексту я буду использовать ObjectIAgentCtlCharacterEx вместо ссылки на Ваш персонаж.

Стандартные персонажи

В настоящее время на сайте Microsoft доступны четыре стандартных персонажа, которые Вы можете использовать. Это Genie, Merlin, Peedy попугай и Robby робот.

 

Рис. 2. Стандартные персонажи Microsoft Agent

Кроме стандартных Agent-ов в сети Интернет, мне известно более 40 различных персонажей на любой вкус. Более того Вы можете воспользоваться специальным редактором и создать свой неповторимый персонаж. Работая со стандартным персонажем Microsoft Вы должны помнить, какие анимационные эффекты они поддерживают или проверять наличие анимации с помощью коллекции AnimationNames, которая имеется у каждого персонажа. Выяснив, что нужная анимация поддерживается, можно заставить персонаж ее воспроизвести с помощью метода Play.
objectIAgentCtlCharacterEx.Play "Greet" 'воспроизведем анимацию "Приветствие"
'пробежимся по всей анимации
For Each Animation In objectIAgentCtlCharacterEx.AnimationNames
    objectIAgentCtlCharacterEx.Play Animation
Next
Важно: Некоторые типы анимации, например "Hearing" (будь то Hearing_1, Hearing_2 и т.д.) являются циклическими и Вы должны позаботиться о ее остановке. Это можно сделать с помощью метода Stop или StopAll. 'запуск анимации
Set MyRequest = objectIAgentCtlCharacterEx.Play ("Hearing_1")
'что-нибудь делать
...
'остановить анимацию
objectIAgentCtlCharacterEx.Stop MyRequest
У Вас, конечно, может возникнуть вопрос, а как узнать, что анимация выполнена? Для этого можно использовать такой код: Dim MyRequest as Object
...
MyRequest = objectIAgentCtlCharacterEx.Play ("GestureRight")
...
Sub objectIAgentCtlCharacterEx _RequestComplete (ByVal RequestID as Object)
If RequestID = MyRequest Then
    MsgBox = "Анимация завершена!"
End If
End Sub
У стандартных персонажей Agent есть одна очень интересная особенность, они могут загружать анимацию прямо с сервера Microsoft с помощью метода Get, более того Вы даже можете загрузить всего персонажа с сервера, так что если у Вас хороший и, главное, быстрый Интернет-канал, то, пожалуйста, пользуйтесь, но у Ваши клиентов может быть, вообще нет Интернет, так что это тупиковый путь, поэтому читайте документацию к Agent сами.

Русская речь с английским акцентом

Как Вы уже догадались, сейчас я попробую Вам рассказать о том, как заставить Agent разговаривать. В настоящее время Agent может разговаривать на 11 языках мира, в числе которых есть и русский язык. Я уже говорил о том, что для использования

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам