Okamoto's Homepage ShadeでAppleScript 事始め
「Shadeでの操作を記録する」の項目で,スクリプト編集プログラムで操作を記録して球を作る方法を書きましたが,その方法では毎回同じ大きさの球ができてしまいます。球を作る前に球の半径を入力するダイアログを表示するように改良してみましょう。
スクリプト編集プログラムで
display dialog "球の半径を入力してください。"
と入力して構文確認の後実行ボタンを押すと,上のようなダイアログが表示されます。"と"で囲まれた「球の半径を入力してください。」の部分は適当に変更可能です。このとき「tell application "Shade Personal R2 PPC"
activate」などは必要ありません。ただ「display dialog "球の半径を入力してください。"
」と入力すれば,ダイアログが表示されます。
ただこのままでは,球の半径を入力できません。その後に「default answer "500"」を付け加えることで,入力フィールドを表示することができます。
display dialog "球の半径を入力してください。" default answer "500"
「"500"」の部分を「""」にすれば,空の入力フィールドになります。
次に,入力された文字(数値)を実際に利用する必要があります。上のようなダイアログを表示してOKボタンを押すと,「結果」ウインドウがあらわれます(あらわれない場合は「制御」メニューから「結果を表示」を選択して表示してください)。「結果」ウインドウには「{text returned:"500", button returned:"OK"}」と表示されているはずです。これは「500」という文字が入力されてOKボタンが押されたという意味です。この文字をスクリプトで利用するには,2行目に
set rOfSphere to text returned of result
と入力してください。これは,ダイアログで入力された文字を後から利用するために,適当な名前をつけておこうというものです。上の例ではダイアログでの結果(result)の「text returned」の部分を「rOfSphere」におさめています。「rOfSphere」の部分は,制限はありますが,適当な名前をつけることができます。自分で分かりやすい名前をつけて下さい。
ダイアログで入力した数値を使って球を作るスクリプトは,下のようになります。
display dialog "球の半径を入力してください。" default answer
"500"
set rOfSphere to text returned of result
tell application
"Shade Personal R2 PPC"
activate
create sphere r rOfSphere
end tell
「Shadeでの操作を記録する」の項目で「create sphere r 600.0」としていた部分が「create sphere r rOfSphere」になっています。これは,入力された数字の半径の球を作りなさいという命令をShadeに送っていることになります。
なお1,2行目はまとめて「set rOfSphere to text returned of (display dialog "球の半径を入力してください。" default answer "500")」と書くことも可能です。