HyperCard tribute
自由自在にスクロール
先のセクションを応用させて右にスクロールするようにしましょう。逆の考え方をすればいいだけですから簡単です。
それでは、以下のような左、右のボタンを用意して下さい。それぞれボタンを押し続けることで、左、右へスクロールさせるようにしましょう。 1つ目はボタンを押し続けている間、スクリプトが実行されるという点です。以前のスクリプトはmouseWithin(=マウスがオブジェクト上に入ったら)でしたが、今回はmouseStilldown(=マウスボタンを押し続けている間、ずっと)を使用しています。 2つ目は、右端の文字を左端に移動するという点です。今回、右端の文字を指定するために、lastを用います。フィールドにいくつの文字が入っているかわかっていれば、先のセクションの様にアラビア数字を用いて指定すれば良いですが、いろいろなメッセージに対応した柔軟なスクリプトを作るためにもこのような場合はlastを用いた方が良いでしょう。 左のボタンには、先のセクションのスクリプトのメッセージハンドラの部分をmouseStilldownに変更したスクリプトを打ち込みます。 右ボタンには、以下のスクリプトを打ちこんでください。
2行目では、最後の文字を最初につけ加えます。最後の文字を指定するためにlastですが、先のセクションと少し書き方が違います。5文字目というような場合はchar 5と、文字位置を後に書く必要がありました。しかし、lastの場合は前に書かなければなりません。 lastは選択子と呼ばれ、他にfirstからtenthまでの10までの位置を示す番号、ランダムに位置を指定するany、真ん中の位置を指定するmiddleがあります。
3行目では、最後の文字を消します。
これで左右に自由自在にスクロールするフィールドを作ることができました。mouseStilldownをmouseUpやmouseDownに変えることで一文字ずつ移動させてみたり、他のハンドラからこのハンドラを呼び出したり、スクリプトに書き込んだりすることで、自由自在にスクロールを管理することが可能となります。 |