連載[9-2] ボタンやメニューで使いやすいスクリプトを
|
《 ボタンをクリックするとスクリプトを実行
》
|
||
|
」
|
ほかにも、いろいろと設定する項目がありますが。 | |
|
先生
|
それは後で説明するとして、さてそれではいよいよスクリプトを書いてみよう。ボタンをクリックして選択して、一番上にあるパレットのスクリプト・ボタン(上段最右)をクリックしてごらん。 | |
![]() |
||
|
先生
|
そのボタンのスクリプトを記述するウインドウが出てくるよ。 | |
![]() |
||
|
」
|
ここで、どういう風に書くんですか。 | |
|
先生
|
まずは「ハンドラ」というポップアップ・メニューから「ハイライトされる」を選択してごらん。 | |
|
||
|
」
|
あ、何か出てきましたが。 | |
![]() |
||
|
先生
|
この「on hilited theObj 〜 end hilited」の間にスクリプトを書いておくと、ボタンがクリックされた時に自動的に実行されるんだよ。
on hilited とは、「そのボタンが押されたならば」という意味なんだね。「ハンドラ」は、そのオブジェクトに対して特定の操作が行われた時に実行されるものなんだ。 |
|
|
」
|
一種のサブルーチンでしょうか。 | |
|
先生
|
ハンドラは、クリックなど特定の操作によって自動的に起動されるサブルーチンと思ってもいいだろう。 | |
|
、
|
ボタン以外には、どんな部品があるんですか。 | |
|
先生
|
さっきのはプッシュ・ボタン。ほかにラジオ・ボタン、チェック・ボックス,リスト・ボックス、ポップアップ・メニュー、テキスト・ボックス、ピクチャー、QuickTimeムービー、…いろいろあるよ(図1)。 複雑な作図機能はないけど、直線と四角形なら描ける。 |
|
|
、
|
なんか、普通のアプリケーションでも目にするものばかりですね。 | |
|
先生
|
そうだね。これらを駆使すれば市販のアプリケーションに匹敵するユーザー・インタフェースを作ることができる。 まぁ駆使するにはそれなりに鍛練が必要だけどね。 |
|
|
《 部品は「オブジェクト」だから「属性」がある
》
|
|
|
先生
|
さて、次はポップアップ・メニューを例に、スクリプト中でのユーザー・インタフェース部品の扱い方を勉強しようか。まず「オブジェクト」と「属性(プロパティー)」について考えて見よう。 |
|
」
|
あ、大昔にやりましたね。 |
|
先生
|
そう、AppleScriptを書く上で実はこの「オブジェクト」と「属性」は非常に重要なんだ。FaceSpanではウインドウやボタン、これから説明するラジオ・ボタンやリスト・ボックスなどは、すべてAppleScriptの「オブジェクト」として扱える。 |
|
、
|
ということは、「ファイルメーカーPro」の「Record」や、「QuarkXPress」の「text box」のように、AppleScriptで操作できるデータなんですね。 |
|
先生
|
その通り。ボタンの名称や、リスト・ボックスの内容などは「属性」として定義されているんだ。試しに「スクリプト編集プログラム」でFaceSpanの用語説明を開いてごらん。どんなオブジェクトのクラスがあるか分かるから。 |
![]() |
|
|
」
|
「クラス」はスクリプトを書く時の基本でしたよね。 |
|
先生
|
そう、FaceSpanでスクリプトを書く時でも,スクリプト編集プログラムを使う場合でも基本は変わらない。ただしFaceSpanでは、さっきのボタンの名前やタイトルのように、スクリプトを書かずにダイアログボックスで属性を設定することもできる。 |
|
、
|
もうちょっと具体的に見せていただけませんか。 |
|
《 メニューを選ぶと自動的にスクリプトを実行
》
|
||
|
先生
|
そうだね。ではポップアップ・メニューを1つ作ってみよう。 | |
|
||
|
」
|
絵を描くように簡単に作れますね。 | |
|
先生
|
これをダブル・クリックしてみると、属性の設定ダイアログが出てくる。 ここで、ポップアップした時に出てくるメニュー項目を記述できる。 例えば、「中ゴシック体」「細明朝体」「Osaka」なんて書いておけば、フォントを選択するポップアップ・メニューが作れるわけだ。 |
|
![]() |
||
|
、
|
ここまでは、全くプログラミングなしでできますね。 | |
|
先生
|
プログラミングしなくても、クリックするとちゃんとメニューがポップアップしてくれるよ。もっとも、それだけじゃ役に立たないけどね。 | |
|
、
|
選ばれた項目に従って、何らかの動作を行うスクリプトを書く必要がありますね。 | |
![]() |
||
|
先生
|
そう、ポップアップ・メニューの場合、項目が選択された時に何らかの動作を行うようにするには、こんなスクリプトを書くんだ。 | |
![]() |
||
|
」
|
あれ、さっきのプッシュ・ボタンと違う。 「on hilited」じゃなくて on selection made というハンドラが書かれています。 |
|
|
先生
|
部品の種類や状況によって、使うべきハンドラが違うんだ。「selection made」はそのオブジェクト中の何かが選択された時に動くスクリプトを書くためのハンドラだ。 | |
|
」
|
実際に動かすにはどうすればいいんですか。 | |
|
先生
|
プロジェクト・パレットの「実行」ボタンをクリックすればいい。 | |
|
||
|
」
|
ポップアップ・メニューを選択するたびに、選択したフォント名が表示されます。 | |
![]() |
||
|
、
|
「display dialog」はダイアログボックスでメッセージを出すコマンドでしたよね。それで表示している
contents of selection of theObj というのは何ですか。 |
|
|
」
|
theObjというのは「このオブジェクト」ということですか。 | |
|
先生
|
そうだね。ポップアップ・メニューに貼り付いているスクリプトだから、theObjはまさにそのポップアップ・メニューを表している変数だ。ここではtheObjの属性を取り出しているんだ。 | |
|
、
|
つまり、ポップアップ・メニューにはselectionという属性があるわけですね。 | |
|
先生
|
その通り。selectionは選択されている項目(1,2,3,…と番号がふられている)で、contents of selectionとはその項目の内容。つまり、「中ゴシック体」とか「細明朝体」といった文字列なんだ。 | |
AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp