« 今日の昼食……復刻版 | トップページ | iPhone購入から十日…… »

2008年7月21日 (月曜日)

問2:完成

前回「これで問2への解法は一応完成という事になります」と書きましたが、飽くまでも『一応』ということです。というのも、せっかく作った「計算ボタン」以外でマウスがクリックされても反応してい、その度にアラートが表示されるというエレガントさに欠けるからです。そこで「計算ボタン」をクリックした時だけに反応するスクリプトに変更していく事にします。
 といってもそれほど大掛かりな変更や追加ではありません。


まずスクリプトを追加するのですが、その場所は今回はボタン・オブジェクトになります。今まではカード・オブジェクトに全てのスクリプトを書いてきましたが、今回に限りボタン・オブジェクトにスクリプトを書きます。

【スクリプト2の13】
on mouseUp
KeiSanSuru
end mouseUp

 書くのはこれだけです。これで計算ボタンがクリックされた時に発するメッセージは「KeiSanSuru」になります。この状態でブラウズ・モードにもどって計算ボタンをクリックしてみてください。また計算ボタン以外の場所でマウスをクリックしてみてください。どうなるでしょうか?

 今まで書かれたスクリプトがキチンと動くものであれば、計算ボタンをクリックするとエラー・メッセージが現れるはずですし、計算ボタン以外でクリックした場合には次の図のようになるはずです。


Itoh034

 まず、計算ボタンが押された時にレヴォルーションのエラー・メッセージが表示されるのは、このボタンがクリックされた時に発するメッセージ「KeiSanSuru」を受けとるハンドラーがどこにも存在しないからです。
 次に、計算ボタン以外の場所でクリックされた時に上の図のアラートが表示されるのは、カード・オブジェクトに書かれた「mouseUp」ハンドラーが「mouseUp」メッセージを受けとっているからです。

 この仕組みが理解できれば次になすべき事は想像できると思いますが如何ですか?

 そうその通り!!想像通りです!!
 要するに「KeiSanSuru」メッセージを受けとるハンドラーをカード・オブジェクトに書けばいいのです。で、そのハンドラが実行すべき内容は「mouseUp」ハンドラーの内容になるわけです。とすれば、なすべき事は自ずとはっきりするはずですね。つまり、カード・オブジェクトに書かれたハンドラー「mouseUp」を「KeiSanSuru」と書き換えてやれば良いのです。

 では実行してみましょう。カード・オブジェクトの「mouseUp」を「KeiSanSuru」と書き換え最終のテストをしてみましょう。次のような動きになれば問2のスクリプトは完成したという事です。そうでなければ……もうする事はおわかりですよね。


あ!!

 実際には、まだチューニングが必要なところがありますが、そのチューニングはWindowsの場合余り意味を持たないのでここでは説明と変更を省略しておきます。

 問2に対するスクリプト作成に関してはこれで完成ですが、次回は付録としてスクリプティングの技術的な側面に少しだけ言及したいと思います。それでは叉……

|

« 今日の昼食……復刻版 | トップページ | iPhone購入から十日…… »