SenseTalkスクリプティングにおけるユーザーとの対話
実行時に情報を求めるSenseTalkスクリプトを作成することができます。以下のコマンドは、情報の表示や要求によりSenseTalkスクリプトがユーザーと対話することを可能にします。
answer
それが何をするか
メッセージと最大3つのボタンを含む簡単なモーダルパネルを表示します。ユーザーがクリックしたボタンのタイトルを変数it
に返します。
それを使用するタイミング
モーダルパネルで短いから中程度の長さのメッセージを表示したり、ユーザーから二つまたは三つの異なる選択肢の形で入力を求める必要があるときに、answerコマンドを使用します。
answerコマンドは、ユーザーがyes/noやcontinue/cancelのような決定をする必要がある状況に最適です。より複雑な選択肢については、askコマンドを使用します。
例
answer "Great! You got " & pctRight &"% correct!"
例:
answer "Go on?" with "Yes" or "No" title "DECIDE"
例
answer "How do you feel?" with "Great!" or \
"Okay" or "Really Lousy" title "Greetings!"
例:
answer "Account" from list the unique items of myListOfChoices
例:
answer "What would you like to drink?" from list ["Coffee", "Tea", "Beer", "Water"] allow multiple default "Coffee"
Syntax
answer {panelType} {Options}
Options:
{prompt | body | message}
prompt
with reply1 {or reply2 { or reply3 {or reply4}}}
[title | titled] titleExpr
[timeout | time out ] {after | in} duration
icon iconName
[default {answer} | answer] defaultSelection
{allow} multiple
オプションとしてpanelType
として、情報、質問、警告、エラーが指定可能です。各パネルの具体的な実装はホストアプリケーションに任されていますが、通常、関連するアイコンがパネルに表示されます。
prompt
は、パネルの主要なテキストとして表示される表現される表現の値です。TitleExpr
は、パネルの上部で大きなフォントで表示されるタイトルです。
Reply1, reply2, reply3,
とreply4
は、パネルの下部にあるボタンに表示されるラベルで、reply1
がデフォルトの(最も右の)ボタンです。表示されるボタンの数は、コマンドで指定された応答文字列の数に一致します。応答が指定されていない場合、"OK"と表示される単一のボタンが含まれます。
タイムアウトオプションが使用される場合、duration
はパネルがユーザーの入力を待って表示される時間(明示的に指定されていない場合は秒)を指定します。ユーザーがその時間内にパネルに反応しない場合、パネルは自動的に閉じられます。その場合、変数itは空になり、result関数はパネルがタイムアウトしたことを示す値に設定されます。
アイコンオプションを使用して、パネルに表示する別のアイコンを提供することもできます。使用される場合、iconName
は既知のシステムアイコンの名前、またはアイコンファイ ルへのフルパスのいずれかになります。
プロンプト、返信、タイトル、タイムアウト、アイコンの指定順序は自由で、すべての項目はオプションです(ただし、少なくとも1つのオプションが必要です)。
answerコマンドの実行後、変数itにはクリックされたボタンのタイトル(またはパネルのタイムアウトが経過した場合は空)が含まれます。
Answer
コマンドについての詳細は、Using Ask and Answerを参照してください。
ask
それが何をするか
ユーザーが応答をタイプできるプロンプト文字列とテキスト入力フィールドを含むモーダルパネルを表示します。デフォルトの応答を提供できます。ユーザーの回答を変数itに返します。
それを使うタイミング
ユーザーからの回答が予め定められた選択肢からのものではない場合、askコマンドを使用します。入力がタイプされている間隠されている入力を要求するために、ask passwordコマンドを使用します。