Character-Objektmethoden
[Der Microsoft-Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]
Der Server macht auch Methoden für jedes Zeichen in einer Characters-Auflistung verfügbar. Folgende Methoden werden unterstützt:
- Aktivieren
- GestureAt
- Get
- Ausblenden
- Interrupt
- Hören
- MoveTo
- Spielen
- Anzeigen
- ShowPopupMenu
- Speak
- Stoppen
- StopAll
- Reaktions-
- Wait
Um eine Methode zu verwenden, verweisen Sie auf das Zeichen in der Auflistung. In VBScript und Visual Basic geben Sie dazu die ID für ein Zeichen an:
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
Um die Syntax ihres Codes zu vereinfachen, können Sie eine Objektvariable definieren und festlegen, dass sie auf ein Zeichenobjekt in der Characters-Auflistung verweist. anschließend können Sie ihre Variable verwenden, um auf Methoden oder Eigenschaften des Zeichens zu verweisen. Im folgenden Beispiel wird veranschaulicht, wie Sie dies mithilfe der Set-Anweisung von Visual Basic tun können:
'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
In Visual Basic 5.0 können Sie ihren Verweis auch erstellen, indem Sie Ihre Variable als Character-Objektdeklarieren:
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
Das Deklarieren ihres Objekts vom Typ IAgentCtlCharacterEx ermöglicht eine frühzeitige Bindung am Objekt, was zu einer besseren Leistung führt.
In VBScript können Sie einen Verweis nicht als einen bestimmten Typ deklarieren. Sie können den Variablenverweis jedoch einfach deklarieren:
<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>
Einige Programmiersprachen unterstützen keine Sammlungen. Sie können jedoch mit der Character-Methode auf die Methoden eines Character-Objekts zugreifen:
agent.Characters.Character("CharacterID").method
Darüber hinaus können Sie auch einen Verweis auf das Character-Objekt erstellen, um den Skriptcode einfacher zu verfolgen:
<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>