Command 对象
[Microsoft 代理从 Windows 7 开始已弃用,可能在后续版本的 Windows 中不可用。]
Command 对象是 Commands 集合中的项。 当客户端应用程序变为输入活动状态时,服务器向用户提供对 Command 对象的访问权限。
若要访问 Command 对象的 属性,请使用其 Name 属性在其集合中引用它。 在 VBScript 和 Visual Basic 中,可以直接使用 Name 属性:
<i>agent</i>.Characters("<i>CharacterID</i>").Commands("<i>Name</i>").<i>property</i> [= <i>value</i>]
对于不支持集合的编程语言,请使用 Command 方法:
<i>agent</i>.Characters("<i>CharacterID</i>").Commands.Command("<i>Name</i>").<i>property</i> [= <i>value</i>]
还可以通过创建对 Command 对象的引用来引用该对象。 在 Visual Basic 中,声明对象变量并使用 Set 语句创建引用:
Dim Cmd1 as Object
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
在 Visual Basic 5.0 中,还可以将 对象声明为 类型 IAgentCtlCommandEx 并创建引用。 此约定支持早期绑定,从而提高性能:
Dim Cmd1 as IAgentCtlCommandEx
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
在 VBScript 中,可以将引用声明为特定类型,但仍然可以声明变量并将其设置为集合中的 命令 :
Dim Cmd1
...
Set Cmd1 = Agent.Characters("MyCharacterID").Commands("SampleCommand")
...
Cmd1.Enabled = True
命令可能显示在角色的弹出菜单和命令窗口中,或同时出现在两者中。 若要在弹出菜单中显示,它必须具有描述文字,并将 Visible 属性设置为 True。 此外,其 Commands 集合对象 Visible 属性也必须设置为 True。 若要在命令窗口中显示, 命令 必须设置其 “标题” 和 “语音 ”属性。 请注意,显示菜单时,角色的弹出菜单项不会更改。 如果在显示字符的弹出菜单时添加或删除命令或更改其属性,则每当用户下次显示这些更改时,菜单都将显示这些更改。 但是,“命令”窗口会动态反映所做的任何更改。
下表总结了 命令 的属性如何影响其表示形式:
Caption 属性
Voice-Caption 属性
Voice 属性
Visible 属性
Enabled 属性
显示在字符的弹出菜单中
显示在“命令”窗口中
是
是
是
True
True
正常,使用 Caption
是,使用 VoiceCaption
是
是
是
True
False
已禁用,使用 Caption
否
是
是
是
False
True
未显示
是,使用 VoiceCaption
是
是
是
False
False
未显示
否
是
是
否
True
True
正常,使用 Caption
否
是
是
否
True
False
已禁用,使用 Caption
否
是
是
否
False
True
未显示
否
是
是
否
False
False
未显示
否
否
是
是
True
True
未显示
是,使用 VoiceCaption
否
是
是
True
False
未显示
否
否
是
是
False
True
不显示
是,使用 VoiceCaption
否
是
是
False
False
不显示
否
否
是
否
True
True
不显示
否
否
是
否
True
False
不显示
否
否
是
否
False
True
不显示
否
否
是
否
False
False
不显示
否
是
否
是
True
True
普通,使用 标题
是,使用 Caption
是
否
是
True
False
已禁用,使用 标题
否
是
否
是
False
True
不显示
是,使用 Caption
是
否
是
False
False
不显示
否
是
否
否
True
True
普通,使用 标题
否
是
否
否
True
False
已禁用,使用 标题
否
是
否
否
False
True
不显示
否
是
否
否
False
False
不显示
否
否
否
是
True
True
不显示
否
否
否
是
True
False
不显示
否
否
否
是
False
True
不显示
否
否
否
是
False
False
不显示
否
否
否
否
True
True
不显示
否
否
否
否
True
False
不显示
否
否
否
否
False
True
不显示
否
否
否
否
False
False
不显示
否
如果属性设置为 null。 在某些编程语言中,空字符串的解释可能与空字符串不同。 该命令仍可通过语音访问。
当服务器收到其中一个命令的输入时,它会发送 Command 事件,并将 Command 的名称作为 UserInput 对象的属性传回。 然后,可以使用条件语句来匹配和处理 命令。