チュートリアル 2:
bang メッセージ

bang メッセージ

・このプログラムは、実際には3つの別々な表示用プログラムです。各プログラムの button アイコンをクリックして Max ウィンドウ に表示される内容に注意して下さい。

注目すべき第1は、2つの print オブジェクトが xとy という名前を持っているということです。 パッチャーウィンドウ では print オブジェクトはいくつでも作ることができるため、どれが実際にメッセージを表示しているのかを明確にしたいと思うことはよくあることです。 これを行なうには、ボックス内の print という語の後に名前を置きます。名前がない場合、メッセージはプログラム1のように print: の後に続いて表示されます。 名前がある場合には、プログラム2と3のように名前がメッセージの前につきます。

このウィンドウ内で、第2に重要で新しいものは button オブジェクトです。 これはパレット内の1つの項目として表示され、bang メッセージを持っているもので、実際にメッセージボックスに非常によく似ています。

bang は Max の中では魔法のような言葉で、 "Do it!" (「実行せよ」)を意味する特別なメッセージです。これは、オブジェクトが行なうべき動作の実行を促します。例えば、メッセージボックスは bang あるいはマウスのクリックに反応して、保持しているメッセージを送信します。

・ プログラム1では、 "Gotcha!" と書かれたメッセージボックスをクリックしても、あるいはメッセージボックスのインレットに bang メッセージを送信する button をクリックしてもメッセージを表示させることができます。どちらの場合もメッセージボックスが「トリガ」され、持っているメッセージを送信するため、その効果は同じです。

・プログラム2では、 button オブジェクトが文字どおり bang メッセージを送信することを証明するだけではありません。これはまた、bang メッセージが print オブジェクトに対して特別な効果を持っていないことをも示しています。 これは print オブジェクトが受信したメッセージを理解しようと試みないからです。このオブジェクトの唯一の目的は、インレットに到着したものを表示することだけです。

・プログラム3はパズルのようなものです。 どちらの button をクリックしても y: bang と表示します。

上側にある button をクリックしたとき、実際にはどちらの buttonprint オブジェクトへメッセージを渡しているのでしょうか?

答えは下側にある button です。

上の button は下の buttonbang メッセージを送信します。下の buttonbang メッセージを "Do it!" であると解釈し、期待される機能を実行します。それは bang メッセージを送信するということです。 print オブジェクトはただ受信したものを出力するだけです。

まとめ

bang はオブジェクトに、オブジェクト自身が持っているタスクを実行させる特別なメッセージです。 button オブジェクトの役割は bang メッセージを送信することです。従って button はその他のオブジェクトをトリガします。

参照

button bang メッセージを送信します。