title1
navigation bar3



[ 1 | 2 | 3 |4 |5 | 6 | 7 | 8 | 9-p1 | 9-p2 | 9-p3 | 10 | 11 | 12 ] [日経マック連載Index ]


連載[9-2] ボタンやメニューで使いやすいスクリプトを



《 ボタンをクリックするとスクリプトを実行 》
ほかにも、いろいろと設定する項目がありますが。
先生
それは後で説明するとして、さてそれではいよいよスクリプトを書いてみよう。ボタンをクリックして選択して、一番上にあるパレットのスクリプト・ボタン(上段最右)をクリックしてごらん。
パレットのスクリプトボタンをクリック
先生
そのボタンのスクリプトを記述するウインドウが出てくるよ。
ボタンのスクリプトを記述するウインドウ
ここで、どういう風に書くんですか。
先生
まずは「ハンドラ」というポップアップ・メニューから「ハイライトされる」を選択してごらん。
ハイライトされる
あ、何か出てきましたが。
ボタンがクリックされると自動的に実行される
先生
この「on hilited theObj 〜 end hilited」の間にスクリプトを書いておくと、ボタンがクリックされた時に自動的に実行されるんだよ。

  on hilited

とは、「そのボタンが押されたならば」という意味なんだね。「ハンドラ」は、そのオブジェクトに対して特定の操作が行われた時に実行されるものなんだ。

一種のサブルーチンでしょうか。
先生
ハンドラは、クリックなど特定の操作によって自動的に起動されるサブルーチンと思ってもいいだろう。
ボタン以外には、どんな部品があるんですか。
先生
さっきのはプッシュ・ボタン。ほかにラジオ・ボタン、チェック・ボックス,リスト・ボックス、ポップアップ・メニュー、テキスト・ボックス、ピクチャー、QuickTimeムービー、…いろいろあるよ(図1)。
複雑な作図機能はないけど、直線と四角形なら描ける。
図1 FaceSpanで作成できるユーザー・インターフェース部品

図1FaceSpanで作成できるユーザー・インターフェース部品
図1FaceSpanで作成できるユーザー・インターフェース部品
なんか、普通のアプリケーションでも目にするものばかりですね。
先生
そうだね。これらを駆使すれば市販のアプリケーションに匹敵するユーザー・インタフェースを作ることができる。
まぁ駆使するにはそれなりに鍛練が必要だけどね。
TOP

《 部品は「オブジェクト」だから「属性」がある 》
先生
さて、次はポップアップ・メニューを例に、スクリプト中でのユーザー・インタフェース部品の扱い方を勉強しようか。まず「オブジェクト」と「属性(プロパティー)」について考えて見よう。
あ、大昔にやりましたね。
先生
そう、AppleScriptを書く上で実はこの「オブジェクト」と「属性」は非常に重要なんだ。FaceSpanではウインドウやボタン、これから説明するラジオ・ボタンやリスト・ボックスなどは、すべてAppleScriptの「オブジェクト」として扱える。
ということは、「ファイルメーカーPro」の「Record」や、「QuarkXPress」の「text box」のように、AppleScriptで操作できるデータなんですね。
先生
その通り。ボタンの名称や、リスト・ボックスの内容などは「属性」として定義されているんだ。試しに「スクリプト編集プログラム」でFaceSpanの用語説明を開いてごらん。どんなオブジェクトのクラスがあるか分かるから。
FaceSpanの用語説明
「クラス」はスクリプトを書く時の基本でしたよね。
先生
そう、FaceSpanでスクリプトを書く時でも,スクリプト編集プログラムを使う場合でも基本は変わらない。ただしFaceSpanでは、さっきのボタンの名前やタイトルのように、スクリプトを書かずにダイアログボックスで属性を設定することもできる。
もうちょっと具体的に見せていただけませんか。
TOP

《 メニューを選ぶと自動的にスクリプトを実行 》
先生
そうだね。ではポップアップ・メニューを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とはその項目の内容。つまり、「中ゴシック体」とか「細明朝体」といった文字列なんだ。

TOP

AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp

主催 株式会社フォーサイト   後援 アップルコンピュータ株式会社

(c)1996-2010 The ForeSight Inc. All rights reserved.Appleは、米国アップルコンピュータ社の登録商標です。
AppleScriptは、米国アップルコンピュータ社の商標です。
その他記載の会社名・製品名・ソフトウェア名は一般にその会社の登録商標または商標です。