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コマンドを使用します。
例
ask "Enter your name:"
例
ask "How do you feel?" title "Greetings!"
例
ask query with defaultAnswer title "Please Answer"
例
ask password "Enter the secret code"
Syntax
ask
{password} {
Options
}
Options:
{
prompt
| question}
question
[title | titled] titleExpr
[with {answer} | answer] presetAnswer
[hint | placeholder | place holder] placeholder
[message | body] {text} message
{with} [buttons | button {label{s}] label1 {and label2}
[timeout | time out] {after | in} duration
icon iconName
{from} list listOfChoices
question
のテキスト値は、パネルの入力フィールド上のプロンプトとして表示されます。 TitleExpr
は、パネルの上部で大きなフォントで表示されるタイトルです。 presetAnswer
式の文字列値は、デフォルトの応答として回答フィールドに表示されます。 placeholder
が指定された場合、placeholderの値は、回答フィールドが空で選択されていないときに表示されます。 message
テキストは、タイトルの下のパネルに表示されます。
label1
(およびオプションで label2
)が指定されている場合、それらはパネルのボタンを定義します。それ以外の場合、パネルの下部には Cancel と OK の2つのボタンが表示されます。ユーザーが OK ボタンをクリックするか(またはリターンを押すと)、回答フィールドの値が変数itに入ります。ユーザーが Cancel ボタンをクリックすると、変数itの値は空に設 定され、結果関数は "Cancel" を返します。
タイムアウトオプションが使用されている場合、duration
は、ユーザーの入力を待ってパネルが表示される時間(明示的に指定されていない場合は秒)を指定します。ユーザーがその時間内にパネルに応答しない場合、パネルは自動的に閉じられます。その場合、変数itは空になり、結果関数はパネルがタイムアウトしたことを示す値に設定されます。
アイコンオプションを使用して、パネルに表示する別のアイコンを提供できます。それが使用されている場合、iconName
は既知のシステムアイコンの名前、またはアイコンファイルへのフルパスのいずれかです。
オプションが指定される順序は柔軟で、すべてのオプションはオプションです(ただし、少なくとも1つのオプションを供給する必要があります)。
askコマンドの実行後、変数itにはフィールドに入力された値(またはパネルのタイムアウトが経過した場合は空)が含まれます。
Ask
コマンドについての詳細は、Using Ask and Answerを参照してください。
put
それが何をするのか
指定された宛先コンテナがない場合、putコマンドは標準出力にテキストを表示します。
それを使うとき
スクリプト中でステータス情報を表示したい場合や、answerコマンドのようなモーダルパネルを表示せずに情報を表示したい場合に、このようにputコマンドを使用します。また、スクリプトの開発中には、スクリプトの異なるポイントでの変数の現在の値を表示するためにもよく使用されます。
例
put "Successfully loaded file " & fileName