Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Microsoft Agent Добавлено: 29.03.03 14:43  

Автор вопроса:  serWAR | Web-сайт: serwar.narod.ru | ICQ: 304739736 
Как сделать InputBox для Агента, не используя (Кроме самого Agenta) сторонних *.OCX, то есть нужен код.

Ответить

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

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



Вопросов: 6
Ответов: 120
 Профиль | | #1 Добавлено: 30.03.03 23:26

Может быть поможет ??????????????????

 

Введение

Многим из Вас уже, наверняка, приглянулся один из персонажей 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 ObjectPrivate AgentChar As Object'включаем обработчик ошибокOn Error Resume NextSet MSAgent = CreateObject("Agent.Control.2")'здесь можно проверить, установлен ли Agent на компьютереIf Err.Number Then    MsgBox "Agent не найден на этом компьютере!"Else'подключаемся к серверу AgentMSAgent.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 AnimationNext

Важно: Некоторые типы анимации, например "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 IfEnd Sub 

У стандартных персонажей Agent есть одна очень интересная особенность, они могут загружать анимацию прямо с сервера Microsoft с помощью метода Get, более того Вы даже можете загрузить всего персонажа с сервера, так что если у Вас хороший и, главное, быстрый Интернет-канал, то, пожалуйста, пользуйтесь, но у Ваши клиентов может быть, вообще нет Интернет, так что это тупиковый путь, поэтому читайте документацию к Agent сами.

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

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

Ответить

Страница: 1 |

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



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