Microsoft Agent. Часть II
03.12.2007 от Иван ШиркоВ прошлой части мы научились применять технологию Microsoft Agent в web-страничках. В этот раз мы будем работать с Delphi. Убедитесь, что установлены все необходимые компоненты (см. первую часть) и можно отправляться в увлекательное путешествие по миру MsAgent.
Запустите Delphi и в меню "Component" выберите пункт "Import ActiveX Control…". В появившемся диалоговом окне нужно выделить строку "Microsoft Agent Control…" и нажать кнопку "Install". Далее произойдёт стандартный процесс установки нового компонента. После окончания инсталляции создайте новое приложение и поместите на форму полученный компонент – Agent1:TAgent (он должен находиться на закладке ActiveX).
Вот этот вот почти «ноль-ноль-семь» будет помогать нам создавать приложения, которые будут работать с технологией MsAgent. Начнём с небольшого примера, с маленького костяка, который можно будет использовать при разработке более сложных программ.
Установите свойству Connected компонента Agent1 значение True, затем объявите две глобальные переменные:
Var
//для хранения персонажа
Character: IAgentCtlCharacterEx;
//для получения состояния персонажа
Request: IAgentCtlRequest; Для события OnCreate формы запишите процедуру:
procedure TForm1.FormCreate(Sender: TObject);
begin
//загружаем персонаж «Джин»
Request := Agent1.Characters.Load('genie', 'genie.acs');
//получаем объект персонажа Джин
Character := Agent1.Characters.Character('genie')as IAgentCtlCharacterEx;
//Джин появляется
Request := Character.Show(False);
//Джин здоровается и вкратце рассказывает о себе
Request := Character.Speak('Здравствуйте! '+Сharacter.Description, EmptyParam);
//Джин играет анимацию «Greet»
Request:=Character.Play('Greet');
end;При закрытии формы нужно выгрузить персонаж:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Agent1.Characters.Unload(‘genie’);
end;Если запустить эту программу, то вместе с формой появится Джин, который поздоровается и на несколько секунд застынет в приветственном поклоне. Теперь будем дополнять данный пример.
Как уже упоминалось в первой части, персонажи умеют проигрывать различные анимации, при этом для каждого персонажа могут определяться свои анимации. Поэтому иногда требуется получить все допустимые анимации для персонажа, что и делает следующая процедура:Procedure GetAgentAnim(st: TStrings);
var
05.06.2008 в 05:31
Просто превосходно!
17.07.2008 в 17:36
Конкретно и понятно.