HyperCard tribute
カスタムメニューを作成
HyperCardはオブジェクトの数が多くなるとスピードが遅くなるという欠点があります。そこで、できるだけオブジェクトの数を押さえるためにカスタムメニューを作ってみることにします。 メニューの作成はたった数行で済みますし、スピードの低下も招きませんので、オブジェクトを整理するという点からもメニュー作成は最適だと思います。
スタック起動時にメニューを作成するのが最も効率が良いですから、openStackハンドラに書き込むのが良いと思います。 1行目でメニューを作成します。これで、メニューバーに「設定」という新しいメニューが作られます。 2行目ではメニューの項目データを作成します。つまり、メニュー「設定」をプルダウンしたときに現れる項目の事です。コンマで区切った2番目の項目「-」は、メニュー項目の区切りを表しています。メニューバーのアップルメニューの1番目の項目と2番目の項目の間に線が入っていますが、その線のことです。 3行目では、それぞれのメニュー項目を選んだ時、どのハンドラを呼び出すかを指定するデータを作成しています。メニュー項目「設定」の「初期設定」を選ぶと setupハンドラを実行し、「サウンド」を選ぶと soundハンドラを実行するわけです。区切り線に当たる部分は空白にしておくことを忘れないようにして下さい。 2・3行目で作成したデータを用いて、実際にメニューを作成します。 これでメニュー作成は終わりです。では、次にメニュー削除を説明します。
スタックを閉じただけではメニューは削除されません。複数のスタックを同時に使っていた場合などは使えないメニューが残ってしまいます。もし、他のスタックで違うスタックで作成したメニューを選択してしまうとエラーとなってしまうので気を付けて下さい。 メニューバーのリセット方法です。
初期のメニュー状態に戻ります。メニューを作成した場合は、スタック終了時にこのスクリプトを実行するとよいでしょう。 |