HyperCard tribute
メッセージについて
HyperCardはオブジェクト指向言語です。ボタンやフィールドといったオブジェクトにメッセージを送り、オブジェクトがそれを受け取って実行します。 メッセージの発生は以下のような場合に起こります。 例えば、マウスボタンがクリックされた(これはユーザーのアクションに属します)としましょう。 まず、マウスボタンが下がった時にmouseDownメッセージがオブジェクトに対して送られ、次にマウスボタンから指を話したときにmouseUpメッセージがオブジェクトに送られます。 これらのメッセージはオブジェクトに送られるわけですが、マウスボタンをクリックした場所によって、どのオブジェクトに最初にメッセージを送るかが変わります。すなわち、ボタンの上でクリックしたならば、そのボタンに最初にメッセージが送られ、フィールドの上でクリックしたならば、そのフィールドに最初にメッセージが送られると言うわけです。 もし、最初にメッセージを送ったオブジェクトに、対応するハンドラがなければ(この場合は、mouseDownハンドラとmouseUpハンドラ)、このメッセージは上の階層に送られます。 ここで、注意すべき事は、ボタン1とボタン2とフィールドは同階層に位置し、メッセージは同階層のオブジェクトには伝えられないと言うことです。ボタン2がクリックされたなら、ボタン2、カード、バックグラウンド、スタックへと伝えられます。ボタン1やフィールドにはメッセージは伝わりません。 もう一つの注意すべき点は、メッセージの発生点はボタン、フィールド、カードから始まると言うことです。最初に、バックグラウンドやスタックへメッセージが伝わることはありません。 次のセクションでは具体的な例を用いて、メッセージ伝達の説明をします。 |