Методы объекта character
[Агент Майкрософт не рекомендуется использовать в Windows 7 и может быть недоступен в последующих версиях Windows.]
Сервер также предоставляет методы для каждого символа в коллекции Characters . Поддерживаются следующие методы:
- Активировать
- GestureAt
- Получить
- Скрыть
- Прервать
- Прослушивание
- MoveTo
- Играть
- Показать
- ShowPopupMenu
- Speak
- Остановить
- StopAll
- Время обработки
- Ожидание
Чтобы использовать метод, сослаться на символ в коллекции. В VBScript и Visual Basic это можно сделать, указав идентификатор для символа:
Sub FormLoad
'Load the genie character into the Characters collection
Agent1.Characters.Load "Genie", "Genie.acs"
'Display the character
Agent1.Characters("Genie").Show
Agent1.Characters("Genie").Play "Greet"
Agent1.Characters("Genie").Speak "Hello. "
End Sub
Чтобы упростить синтаксис кода, можно определить объектную переменную и задать для нее ссылку на символьный объект в коллекции Characters ; затем можно использовать переменную для ссылки на методы или свойства символа. В следующем примере показано, как это можно сделать с помощью инструкции Набора Visual Basic:
'Define a global object variable
Dim Genie as Object
Sub FormLoad
'Load the genie character into the Characters collection
Agent1.Characters.Load "Genie", " Genie.acs"
'Create a reference to the character
Set Genie = Agent1.Characters("Genie")
'Display the character
Genie.Show
'Get the Restpose animation
Genie.Get "animation", "RestPose"
'Make the character say Hello
Genie.Speak "Hello."
End Sub
В Visual Basic 5.0 можно также создать ссылку, объявив переменную как объект Character:
Dim Genie as IAgentCtlCharacterEx
Sub FormLoad
'Load the genie character into the Characters collection
Agent1.Characters.Load "Genie", "Genie.acs"
'Create a reference to the character
Set Genie = Agent1.Characters("Genie")
'Display the character
Genie.Show
End Sub
Объявление объекта типа IAgentCtlCharacterEx обеспечивает раннюю привязку к объекту, что приводит к повышению производительности.
В VBScript нельзя объявить ссылку как определенный тип. Однако можно просто объявить ссылку на переменную:
<SCRIPT LANGUAGE = "VBSCRIPT">
<!—--
Dim Genie
Sub window_OnLoad
'Load the character
AgentCtl.Characters.Load "Genie", "https://agent.microsoft.com/characters/v2/genie/genie.acf"
'Create an object reference to the character in the collection
set Genie= AgentCtl.Characters ("Genie")
'Get the Showing state animation
Genie.Get "state", "Showing"
'Display the character
Genie.Show
End Sub
-->
</SCRIPT>
Некоторые языки программирования не поддерживают коллекции. Однако вы можете получить доступ к методам объекта Character с помощью метода Character :
agent.Characters.Character("CharacterID").method
Кроме того, можно создать ссылку на объект Character , чтобы упростить выполнение кода скрипта:
<SCRIPT LANGUAGE="JScript" FOR="window" EVENT="onLoad()">
<!--
//Load the character's data
AgentCtl.Characters.Load ("Genie", _
"https://agent.microsoft.com/characters/v2/genie/genie.acf");
//Create a reference to this object
Genie = AgentCtl.Characters.Character("Genie");
//Get the Showing state animation
Genie.Get("state", "Showing");
//Display the character
Genie.Show();
-->
</SCRIPT>