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

SenseTalkスクリプティングにおけるユーザーとの対話

実行時に情報を求めるSenseTalkスクリプトを作成することができます。以下のコマンドは、情報の表示や要求によりSenseTalkスクリプトがユーザーと対話することを可能にします。

Assert コマンド

Behavior: answer コマンドは、メッセージとユーザーがクリックできる最大 4 つのボタンを含むシンプルなモーダルパネルを表示します。from list オプションを使用すると、ユーザーはより長い回答リストから選択できます。モーダルパネルであるため、パネルが表示されている間はスクリプトの実行が一時停止されます。

モーダルパネルに短~中程度の長さのメッセージを表示する必要がある場合、または2つ以上の選択肢から選択する形でユーザーに入力を求める必要がある場合は、answer コマンドを使用します。基本的な answer コマンドは、ユーザーが「はい/いいえ」や「続行/キャンセル」といった判断を下す必要がある状況に最適です。より複雑な選択肢が必要な場合は from list オプションを使用し、自由回答の場合は ask コマンドを使用します。

選択されたボタンまたはリストから選択された項目のタイトルを変数 it に返します。

構文:
answer {panelType} Options

オプション:
{prompt | body | message} prompt
[title | titled] titleExpr
with reply1 {or reply2 {or reply3 {or reply4}}}
[timeout | time out] {after | in} duration
icon iconName
[default {answer} | answer] defaultSelection
{from} list listOfChoices
{allow} multiple

テックトーク

オプションの panelType として、informationquestionwarning、または error を指定できます。各パネルタイプの正確な実装はホストアプリケーションによって異なりますが、通常はパネル内に関連するアイコンが表示されます。

prompt は、パネル内の主要テキストとして値が表示される式です。TitleExpr は、パネルの上部に大きなフォントで表示されるタイトルです。

Reply1reply2reply3reply4 は、パネル下部のボタンに表示されるラベルです。デフォルトのボタンは reply1 です。表示されるボタンの数は、コマンドで指定された返信文字列の数と一致します。返信文字列が指定されていない場合は、「OK」というラベルのボタンが1つ表示されます。

timeout オプションを使用する場合、duration はパネルが表示され、ユーザー入力を待機する時間(明示的に指定されていない場合は秒単位)を指定します。ユーザーがその時間内にパネルに応答しない場合、パネルは自動的に閉じられます。その場合、変数 it は空になり、the result 関数にはパネルがタイムアウトしたことを示す値が設定されます。

icon オプションは、パネルに表示する別のアイコンを指定するために使用できます。このオプションを使用する場合、iconName には、既知のシステムアイコンの名前、またはアイコンファイルへのフルパスを指定できます。

listOfChoices が指定された場合、すべての選択肢がパネルのメイン部分に表示されます。ユーザーは「OK」ボタンをクリックする前に、選択肢を1つ選択できます。multiple も指定されている場合、ユーザーは複数の選択肢を選択でき、それらの選択肢はリストとして返されます。

オプションが指定される順序は柔軟で、すべてのオプションはオプションです(ただし、少なくとも1つのオプションを供給する必要があります)。

answer コマンドの実行後、変数 it にはクリックされたボタンのタイトルが格納されます(パネルのタイムアウトが経過した場合は空になります)。listOfChoices が提示され、デフォルトボタンがクリックされた場合、it にはユーザーが選択した選択肢または選択肢リストが格納されます。

answer コマンドの詳細については、Ask and Answer の使用を参照してください。

例:

answer "Great! You got " & pctRight &"% correct!"

The licensing splash screen in Eggplant Functional

例:

answer "Go on?" with "Yes" or "No" title "DECIDE"

The licensing splash screen in Eggplant Functional

例:

answer "How do you feel?" with "Great!" or \
"Okay" or "Really Lousy" title "Greetings!"

The licensing splash screen in Eggplant Functional

例:

answer "What would you like to drink?" from list ["Coffee", "Tea", "Beer", "Water"] 

The licensing splash screen in Eggplant Functional

例:

answer "Account" from list the unique items of myListOfChoices

The licensing splash screen in Eggplant Functional

関連:

Ask コマンド

Behavior: プロンプト文字列とユーザーが応答を入力できるテキスト入力フィールドを含むモーダルパネルを表示します。デフォルトの応答を指定することもできます。ユーザーの回答は変数 it に返されます。モーダルパネルであるため、パネルが表示されている間はスクリプトの実行が一時停止されます。

事前に決められた選択肢以外の回答をユーザーに求める場合は、ask password コマンドを使用します。入力中に非表示になる入力を要求する場合は、ask password コマンドを使用します。

構文:
ask {password} 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

例:

ask "Enter your name:"

The licensing splash screen in Eggplant Functional

例:

ask "How do you feel?" title "Greetings!"

The licensing splash screen in Eggplant Functional

例:

ask query with defaultAnswer titled "Please Answer"

The licensing splash screen in Eggplant Functional

例:

ask password "Enter the secret code"

The licensing splash screen in Eggplant Functional

テックトーク

question のテキスト値は、パネルの入力フィールドの上にプロンプ​​トとして表示されます。TitleExpr はタイトルで、パネルの上部に大きなフォントで表示されます。presetAnswer 式の文字列値は、デフォルトの回答として回答フィールドに表示されます。placeholder が指定されている場合、回答フィールドが空で選択されていないときに、プレースホルダー値が表示されます。message テキストは、パネルのタイトルの下に表示されます。

label1(およびオプションで_label2_)が指定されている場合は、パネル上のボタンが定義されます。指定されていない場合は、パネルの下部にキャンセルOKの2つのボタンが表示されます。ユーザーがOKボタンをクリックした場合(またはリターンキーを押した場合)、回答フィールドの値が変数itに格納されます。ユーザーがキャンセルボタンをクリックした場合、変数itの値は空に設定され、結果関数は「キャンセル」を返します。

timeout オプションを使用する場合、duration はパネルが表示され、ユーザー入力を待機する時間(明示的に指定されていない場合は秒単位)を指定します。ユーザーがその時間内にパネルに応答しない場合、パネルは自動的に閉じられます。その場合、変数 it は空になり、result 関数にはパネルがタイムアウトしたことを示す値が設定されます。

icon オプションは、パネルに表示する別のアイコンを指定するために使用できます。このオプションを使用する場合、iconName には、既知のシステムアイコンの名前、またはアイコンファイルへのフルパスを指定できます。

オプションが指定される順序は柔軟で、すべてのオプションはオプションです(ただし、少なくとも1つのオプションを供給する必要があります)。

ask コマンドの実行後、変数 it にはフィールドに入力された値が含まれます (パネルのタイムアウトが経過した場合は空になります)。

ask コマンドの詳細については、Ask and Answer の使用を参照してください。

関連:

Put コマンド

Behavior: 宛先コンテナが指定されていない場合、put コマンドは標準出力にテキストを表示します。

answer コマンドのようにモーダルパネルを表示せずに、スクリプトの実行中にステータス情報を表示したい場合は、put コマンドをこのように使用します。put コマンドは、スクリプト内のさまざまな時点で変数の現在の値を表示するスクリプト開発でも非常によく使用されます。

構文:
put {expr {, expr ...}}

例:

put "Successfully loaded file " & fileName

例:

put n

例:

put "The area is: " & pi * radius^2

Expr には、有効な SenseTalk 式を指定できます。複数の式をカンマで区切って指定すると、それぞれが別の行に表示されます。

ここでは、put コマンドの最も単純な形式のみを説明します。put コマンドのその他の用途については、Put - 必須コマンド を参照してください。

Beep コマンド

Behavior: システムのビープ音を再生します。

beepコマンドは、ユーザーの注意を引くためや何かが発生したことをユーザーに知らせるために使用します。

構文:
beep {expr}

例:

beep

例:

beep 5 -- really get their attention!

Expr には、ビープ音を鳴らす回数を表す有効な SenseTalk 式を指定できます。

関連:

play コマンド

Behavior: サウンド ファイルを再生します。

play コマンドを使用して、システムサウンドやその他のサウンドファイル、または音楽ファイルの再生を開始します。サウンドが再生されている間、スクリプトは実行を継続します。

構文:
play soundFile

例:

play "Glass" -- without full path, plays a system sound

例:

play "~/Music/iTunes/iTunes Music/Billy Joel/Piano Man.mp3"

例:

play stop -- stops the music

SoundFile には、再生するサウンドの名前、または特殊コマンド pauseresume、または stop のいずれかを生成する有効な SenseTalk 式を指定できます。

関連:

sound 関数

Behavior: 現在再生中のサウンドの名前、または「完了」を返します。

再生中のサウンドを監視するには、sound 関数を使用します。

構文:
the sound
sound()

例:

wait until the sound is "done"

関連:

ユーザーにファイルまたはフォルダを選択させる

スクリプトが操作するファイルやフォルダを選択または指定するために、ユーザーと対話するいくつかのコマンドがあります:

answer file コマンドと answer folder コマンドは、ユーザーが既存のファイルまたはフォルダを選択するための標準的なOpenパネルを表示します。ask file コマンドと ask folder コマンドは、ユーザーがファイルシステム内の位置を選択し、新しいファイル名を入力するための標準的なSaveパネルを表示します。

answer file コマンド

Behavior: ユーザーが既存のファイルを選択できるように [開く] パネルを表示し、選択したファイルのフルパス名を変数 it に返します。

ユーザーに既存のファイル名を指定してもらいたい場合は、いつでもanswer file コマンドを使用してください。その後、そのファイルを(open コマンドで)開いたり、他の方法で使用したりできます。

ユーザーが選択したファイルのフルパス名は変数itで返されます。複数のファイルが選択された場合、リストが返され、ユーザーが選択した各ファイル名はitの別の項目になります。ファイルが選択されなかった場合(つまり、ユーザーがパネルの"キャンセル"ボタンをクリックした場合)、answer fileコマンドの後の変数itは空になり、the result関数は"キャンセル"を返します。

構文:
answer {multiple | single} file{s} Options

オプション:
{prompt} promptExpr
[title | titled] titleExpr
[of | with] type{s} factor {or factor}...
with defaultFile
in [folder | directory] defaultFolder
allow multiple
{with} {button} label buttonLabel

例:

answer file

例:

answer file "Select Account File" with "Dec03"

例:

answer multiple files "Choose Data Sets" in folder "/Users/mmalone/data"

例:

answer file with button label "Select" of type "png", "tif", or "tiff" in folder "~/Pictures" title "Choose an Image"
テックトーク

answer file コマンドの最も単純な形式は answer file です。file の前に multiple または single という単語を使用することで、ユーザーが複数のファイルを同時に選択できるかどうかを指定できます。指定しない場合は、1 つのファイルのみ選択できます。

このコマンドの一部として追加のオプションを指定できます。これらのオプションは必須ではなく、任意の順序で指定できますが、オプションを2回以上指定することはできません。

prompt または title オプションが指定されている場合、Open パネルにタイトルを設定できるシステムでは、指定された式が Open パネルの上部に表示されるタイトルとして使用されます。指定されていない場合は、「Open」という単語が使用されます。両方が指定されている場合は、promptExpr のみが使用されます。

type オプションを使用して、1つ以上のファイルタイプを指定することができる。
複数の異なるタイプを列挙する場合は、カンマ、または or、もしくはその両方をタイプの間に使用する。
このオプションが含まれている場合、指定されたタイプのいずれかに拡張子が一致するファイルのみが受け入れられる(ファイル拡張子とは、ファイル名の最後のピリオド以降の部分を指す)。
ファイル拡張子はピリオドの有無にかかわらず指定できる(例:“eps” と".eps"はどちらも有効)。
拡張子のないファイルを含めるには、empty または "" を指定する。

with defaultFile が指定されている場合、そのファイルが存在する場合は選択されます。値にファイル名だけでなくフォルダも含まれている場合は、そのフォルダが「開く」パネルに表示される初期フォルダになります。

in folderオプションは、Openパネルに表示される初期のフォルダの内容を指定します。

label オプションが指定されている場合、buttonLabel が「開く」パネルのデフォルトボタンのラベルとして使用されます。指定されていない場合、ボタンのラベルは「開く」になります。

allow multiple が指定されている場合、ユーザーは一度に複数のファイルを選択できるようになります。このオプションは、answer multiple files 構文の代替です。

関連:

Answer folder, Answer directory コマンド

Behavior: ユーザーが既存のファイルを選択できるように [開く] パネルを表示し、選択したファイルのフルパス名を変数 it に返します。

ユーザーにフォルダの名前を提供してもらいたいときはいつでも、answer folderコマンドを使用します。

構文:
answer {multiple | single} [folder{s} | directory | directories] Options

オプション:
{prompt} promptExpr
[title | titled] titleExpr
[of | with] type{s} factor {or factor}...
with defaultPath
in [folder | directory] defaultFolder
allow multiple
{with} {button} label buttonLabel

例:

answer folder "Select the working Directory:"

例:

answer multiple folders "Choose source paths" \\

in folder "~/Documents"
テックトーク

answer folderコマンドはanswer fileコマンドとほぼ同じですが、ユーザーにはファイルではなくフォルダを選択できるOpenパネルが表示されます。

このコマンドの一部として、いくつかの追加オプションを指定することができます。これらのオプションは必須ではなく、任意の順序で指定することができますが、一つのオプションを複数回指定することはできません。answer fileコマンドの上にあるオプションの説明を参照してください。ファイルタイプの拡張子はこのコマンドで指定できません。

ユーザーが選択したフォルダのフルパス名は変数itで返されます。複数のフォルダが選択された場合、それぞれのフォルダ名がitの別々の項目としてリストに返されます。フォルダが選択されない場合(つまり、ユーザーが"Cancel"ボタンをクリックする場合)、answer folderコマンドの後で変数itは空になり、result関数は"Cancel"を返します。

返される値はスラッシュで終わります、ただしthe folderNamesEndWithSlashグローバルプロパティがfalseに設定されている場合は除きます。末尾のスラッシュにより、ファイル名を単純に追加するだけでフルパス名を作成することが容易になります。

関連:

Ask file, Ask folder, Ask directory コマンド

Behavior: 保存パネルを表示して、ユーザーが作成するファイルまたはフォルダーの名前を指定できるようにし、変数 it にファイルのフルパス名を返します。

あなたのスクリプトが作成または上書きするファイルまたはフォルダの名前と場所をユーザーに指定させたいとき、ask fileまたはask folderコマンドを使用します。

ユーザーが指定したファイル名のフルパス名は変数itで返されます。ファイルが選択されない場合(つまり、ユーザーが"Cancel"ボタンをクリックする場合)、ask fileコマンドの後で変数itは空になり、result関数は"Cancel"を返します。

すべての標準的な保存パネルと同様に、ユーザーが既存のファイルを選択した場合、ファイルを置き換えるかどうかを尋ねる警告パネルが表示されます。このパネルで「置換」ボタンをクリックすると、選択されたファイル名が変数 it に返されます。ただし、既存のファイルは削除されたり変更されたりすることはありません。スクリプトで、可能であれば既存のファイルを削除してから、同じ名前の新しいファイルを作成するようにしてください。ファイルが存在するかどうかを確認するには、there is a file 演算子を使用します(例:if there is a file fileName then ...)。

構文:
ask [file | folder | directory] Options

オプション:
{prompt} promptExpr
[title | titled] titleExpr
of type requiredExtension
with defaultFile
in [folder | directory] defaultFolder
{with} {button} label buttonLabel

例:

ask file "出力ファイル名を入力してください:"

例:

ask file "Temporary file to create:" with "temp1"

例:

ask file "Log Changes" of type ".mylog" in folder "logs"

例:

ask folder "Enter new folder name:" in folder homeFolder
テックトーク

ask fileコマンドの最もシンプルな形式は単にask fileです。このコマンドの一部として、いくつかの追加オプションを指定できます。これらのオプションは必須ではなく、任意の順序で指定できますが、どのオプションも一度以上指定することはできません。

prompt またはtitleオプションが指定された場合、与えられた表現はSaveパネルの上部に表示されるタイトルとして使用されます。指定されていない場合、"Save"という単語が使用されます。どちらも指定された場合、promptExprのみが使用されます。

of type requiredExtension オプションが使用されている場合、「保存」パネルは指定されたファイル拡張子を保存対象のファイルの種類として使用し、返されるファイル名にその拡張子が含まれるようにします(ファイル拡張子とは、ファイル名の最後のピリオドに続く部分です)。ファイル拡張子はピリオドの有無に関係なく指定できます(例:"eps" と ".eps" はどちらも許容されます)。

with defaultFile が指定されている場合、保存パネルのファイル名フィールドに既にその名前が入力された状態で表示されます。値にファイル名だけでなくフォルダも含まれている場合は、そのフォルダが保存パネルに表示される初期フォルダになります。

in folder オプションは、保存パネルに表示される内容の初期フォルダーを指定します。

label オプションが指定されている場合、buttonLabel が保存パネルのデフォルトボタンのラベルとして使用されます。指定されていない場合、ボタンのラベルは「保存」になります。

ask folderコマンドの場合、返される値は最後がスラッシュで終わります、ただしthe folderNamesEndWithSlashグローバルプロパティがfalseに設定されている場合を除きます。最後のスラッシュにより、単にファイル名を追加するだけでフルパス名を作成するのが容易になります。

関連: