RequestComplete イベント
[Microsoft Agent は Windows 7 の時点で非推奨となり、後続のバージョンの Windows では使用できない可能性があります。]
-
説明
-
サーバーがキューに入れられた要求を完了したときに発生します。
-
構文
-
サブ エージェント**_RequestComplete** (ByVal Request**)**
部分 説明 Request Request オブジェクトを返します。
解説
このイベントは Request オブジェクトを返します。 リクエストは非同期的に処理されるため、このイベントを使用して、サーバーがリクエストの処理を完了したタイミング (Get、 Play、 Speak メソッドなど) を判断し、このイベントをアプリケーションによって生成された他のアクションと同期させることができます。 サーバーは、 Request オブジェクトへの参照を作成したクライアントにのみ、また、リクエスト参照のグローバル変数を定義した場合にのみ、イベントを送信します。
Dim MyRequest
Dim Genie
Sub window_Onload
Agent1.Characters.Load "Genie","https://agent.microsoft.com/characters/v2/genie/genie.acf"
Set Genie = Agent.Characters("Genie")
' This syntax will generate RequestStart and RequestComplete events.
Set MyRequest = Genie.Get("state", "Showing")
' This syntax will not generate RequestStart and RequestComplete events.
Genie.Get "state", "Hiding"
End Sub
Sub Agent1_RequestComplete(ByVal Request)
If Request = MyRequest Then
Status = "Showing animation is now loaded"
End Sub
アニメーション Request オブジェクトはサーバーがリクエストを処理するまで割り当てられないため、評価する前に Request オブジェクトが存在することを確認してください。 たとえば、Visual Basic で条件を使用して特定の要求が完了したかどうかをテストする場合は、 Nothing キーワードを使用できます。
Sub Agent1_RequestComplete (ByVal Request)
If Not (MyRequest Is Nothing) Then
If Request = MyRequest Then
'-- Do whatever
End If
End If
End Sub
Note
VBScript 1.0 では、 Request オブジェクトへの参照を定義していない場合でも、このイベントが発生します。 これは VBScript 2.0 で修正されました。
参照