Load 方法
[Microsoft 代理从 Windows 7 开始已弃用,可能在后续版本的 Windows 中不可用。]
-
Description
-
将字符加载到 Characters 集合中。
-
语法
-
agent**。Characters.Load “CharacterID”,** 提供程序
组成部分 说明 CharacterID 必需。 一个字符串值,用于引用要加载的字符数据。 提供程序 必需。 必须是下列类型之一的变体数据类型: Filespec 指定字符的定义文件的本地文件位置。
Url 字符的定义文件的 HTTP 地址。
可以通过指定相对路径 (不包含冒号或前导斜杠字符) ,从代理子目录中加载字符。 这会将路径作为前缀,其中代理的字符目录 (位于本地化的 Windows\msagent 目录) 。 例如,指定以下内容将从代理的 Chars 目录加载 Genie.acs:
Agent.Character.Load "genie", "genie.acs"
还可以在代理的 Chars 目录中指定自己的目录。
Agent.Character.Load "genie", "MyCharacters\genie.acs"
通过不包括路径作为 Load 方法的第二个参数,可以加载当前设置为当前用户的默认字符的字符。
Agent.Character.Load "character"
不能 (具有相同 GUID 的字符多次从控件的单个实例加载同一个字符) 。 同样,不能同时从控件的单个实例加载默认字符和其他字符,因为默认字符可能与其他字符相同。 如果尝试执行此操作,服务器将引发错误。 但是,可以创建代理控件的另一个实例并加载相同的字符。
Microsoft 代理数据提供程序支持加载以单个结构化文件 (存储的字符数据。ACS) 将角色数据和动画数据一起或作为单独的字符数据 (。ACF) 和动画 (。ACA) 文件。 使用单个结构化 。ACS 文件,用于加载存储在本地磁盘或网络上并使用常规文件协议 ((如 UNC 路径名) )访问的字符。 使用单独的 。ACF 和 。如果要从使用 HTTP 协议访问动画文件的远程站点单独加载动画文件,则 ACA 文件。
对于 。ACS 文件使用 Load 方法提供对角色动画的访问权限。 对于 。ACF 文件,还可以使用 Get 方法来加载动画数据。 Load 方法不支持下载 。来自 HTTP 站点的 ACS 文件。
加载字符不会自动显示该字符。 首先使用 Show 方法使字符可见。
如果使用 Load 方法加载存储在本地计算机上的字符文件,并且调用失败;例如,由于找不到该文件,代理会引发错误。 可以使用编程语言中的 支持提供错误处理例程来捕获和处理错误。
Sub Form_Load
On Error GoTo ErrorHandler
Agent1.Characters.Load "mychar", "genie.acs"
' Successful load
. . .
Exit Sub
ErrorHandler:
' Unsuccessful load
. . .
Resume Next
End Sub
还可以通过将 RaiseRequestErrors 设置为 False、声明对象并向其分配 Load 请求来处理错误。 然后,使用语句执行 Load 调用,该语句用于检查 Request 对象的状态。
Dim LoadRequest as Object
Sub Form_Load
Agent1.RaiseRequestErrors = False
Set LoadRequest = Agent1.Characters.Load _
("mychar", "c:\some directory\some character.acs")
If LoadRequest.Status Not 0 Then
' Unsuccessful load
. . .
Exit Sub
Else
' Successful load
. . .
End Sub
如果加载非本地字符;例如,使用 HTTP 协议,还可以通过将 Request 对象分配给 Load 方法来检查 Load 失败。 但是,由于这种加载字符的方法是异步处理的,因此在 RequestComplete 事件中检查其状态。 此方法无法使用 UNC 协议加载字符,因为 Load 方法是同步处理的。