HyperCard tribute

メッセージが上の階層に伝わると何かいいことがあるのか?


 では、メッセージが上の階層に伝わると何かいいことがあるのでしょうか。
 具体的な、例を用いて説明します。

 カード上にボタンが3つあります。
 ボタン1をクリックしたら、「あ」を表示する。
 ボタン2をクリックしたら、「あ」を表示する。
 ボタン3をクリックしたら、「あ」を表示する。


 この場合、ボタン1、ボタン2、ボタン3は全く同じ事をするので、カードに「あ」を表示するというスクリプトを書きこむだけで良いことになります。

もう一つ例を出してみます。

 カード上にボタンが3つあります。
 ボタン1をクリックしたら、「あ」を表示する。
 ボタン2をクリックしたら、「あ」を表示する。
 ボタン3をクリックしたら、「い」を表示する。


 ボタン1とボタン2は同じ事をするので、カードに「あ」を表示するというスクリプトを書きます。ボタン3は他の2つのボタンとは違ったことをするので、「い」を表示するというスクリプトは直接ボタン3に書き込みます。

 このようにすることで、スクリプトの共通の部分をまとめることが可能となります。これが、メッセージが上の階層に伝わる事の利点です。
 では、共通の部分をまとめる利点とは何なのでしょうか?
 もし、この後スクリプトを変更しなければならない点が出てきたらどうでしょう。この例ではボタンは3つだけですので、3カ所の変更だけで済みます。
 しかし、ボタンが何十個もあるようなスタックを作成中に変更点が現れたとしたら、大変な作業になります。そのような場合に備えてスクリプトを一つにまとめておけば、後々の保守管理が非常にやりやすくなります。
 では、メッセージを書く場所について、まとめてみます。

  • スタックにあるオブジェクトで利用するスクリプトは、スタックにスクリプトを書く
  • バックグラウンドを共有するカードにあるオブジェクトで利用するスクリプトは、バックグラウンドにスクリプトを書く
  • カードにあるオブジェクトで利用するスクリプトは、カードにスクリプトを書く
  • 個々のオブジェクトのみで利用するスクリプトは、各々のオブジェクトにスクリプトを書く