メインコンテンツまでスキップ
バージョン:23.5

フローコントロール

スクリプト内のステートメント実行の流れに影響を及ぼすいくつかのステートメントがあります。

リピートループのフローを変更する

ここに挙げたステートメントに加えて、return および pass ステートメントはリピートループの実行を終了します(Messagesを参照)。

次の繰り返し

next repeat ステートメントから end repeat までの後続のステートメントをスキップし、実行を現在の(最も内側の)リピートループの最初に直接戻します。その後、次のイテレーションで実行が続きます。

構文:
next repeat

繰り返し終了

現在の(最も内側の)リピートループの実行を終了します。スクリプトの実行は end repeat の次のステートメントから続きます。

構文:
exit repeat

ハンドラの終了

ハンドラの終了 \

Behavior: 現在のハンドラの実行を終了します。実行は呼び出しハンドラで続きます。

構文:
exit handlerOrFunctionName
exit [handler | script | on | function | getProp | setProp]

ノート

handlerOrFunctionName またはハンドラのタイプが指定された場合、それは現在のハンドラの名前またはタイプと一致しなければなりません。

例:

exit handler
exit myFancyFunction

Exit All, Exit to Top

Behavior: すべてのハンドラの実行を停止します(現在のハンドラとそれを呼び出したハンドラ、そしてその先のハンドラ)。

構文:
exit all
exit to [top | SenseTalk]

例:

exit all

メッセージのパス

Pass コマンド

Behavior: 現在のメッセージをメッセージ パッシング パス内の次のオブジェクトに渡します (こちら で説明されているとおり)。これにより、現在のハンドラーの実行が終了します。

構文:
pass handlerOrFunctionName
pass {the} message

ノート

_handlerOrFunctionName_が指定された場合("message"という一般的な用語ではなく)、提供された名前は現在のハンドラの名前と同じでなければなりません。

例:

pass message

Pass ... and Continue コマンド

Behavior: pass ... and continue コマンドを使用して、現在のメッセージをメッセージパスの次のオブジェクトにパスします。ただし、メッセージが他の場所で処理された後でも、現在のハンドラの実行を続行します。

現在のハンドラは、メッセージがメッセージパスで後続のオブジェクトによって処理された後で実行を再開します。他のオブジェクトによって返された任意の値は、pass ... and continue コマンド直後の the result で利用可能です。

pass ... and continue コマンドを実行した後、そのメッセージをパスしようとする後続の試み(pass コマンドのいずれかを使用)は、同じオブジェクトに二度メッセージが配信されることはないため、実際にはメッセージをパスすることができません。

構文:
pass handlerOrFunctionName and continue
pass {the} message and continue

例:

pass message and continue

Pass ... Without Helping コマンド

Behavior: pass ... without helpingを使用して、メッセージをメッセージパスのヘルピーに続く次のオブジェクトにパスします。これはヘルパー内で使用されるときに pass コマンドと異なります。本質的に、ヘルパーは"このメッセージを助けることはできません"と言っていることになります。ヘルパーのヘルパーにはメッセージを処理するチャンスが与えられませんが、メッセージは助けられているオブジェクトの後のヘルパーやメッセージパスの後の他のオブジェクトにパスされます。

このコマンドが実行されると、現在のハンドラの実行が停止します。

構文:
pass handlerOrFunctionName without helping
pass {the} message without helping

例:

pass message without helping

Pass Original Message To ... コマンド

Behavior: 現在のメッセージを他のオブジェクトに直接渡すには、pass original message to ... を使用します。これは、現在のメッセージをメッセージ パッシング パス内の次のオブジェクトに渡す pass コマンドの他の形式とは異なります。

Behavior: pass original message to ... を使用して、現在のメッセージを直接他のオブジェクトにパスします。これは pass コマンドの他の形式と異なり、現在のメッセージをメッセージパスの次のオブジェクトにパスします。

and continueが指定されている場合、メッセージがパスされた後、他のオブジェクトがそれを処理したかどうかに関係なく、現在のハンドラは実行を再開します。

構文:
[**構文:**md pass original message to object {and continue}

例:

pass original message to alterEgo