前回はこちら
●どこを触ってるの!?
一度プロパティの話から離れたが、今回はまたプロパティ関係だ。スプライトのプロパティ、_xmouseと_ymouseについて。
名前から想像がつくと思うが、これはマウスカーソルの位置を取得するプロパティになっている。
御託を並べるより使ってみた方が分かると思うので、早速使ってみようと思うんだが、その前に一つ、下準備を。
マウスカーソルは常に動き回るものだ。その動きをリアルタイムで捕捉したいとは思わないかね?思わない?それは断じて許さぬ。思え、思うんだ。
動きのあるゲームを作る時にも必要になってくるが、定期的にスクリプトを起動する仕組みがある。これまた、やり方はいくつもあるんだが、そのうちもっとも基本的のような気がする物を教えておく。
実際、この命令は古く、今はもっと便利な命令が搭載されたので、今回覚えた所で、そのもっといい奴を覚えたら使わなくなりそうな気がするが、とりあえず毎フレーム動作に関しては手っ取り早い命令なのは確かだ。
まず、スプライトを作ってほしい。そして、その中に変数を表示するダイナミックテキストを配置する。絵は……めんどくさいからいいや。で、そのスプライトをキャンバスの真ん中辺りに配置し、スプライトのレイヤをクリックして、クリップアクションに次のスクリプトを書くんだ。例によって全角注意。変数名は置き換えろ。
onClipEvent(enterFrame){
変数名= "_xmouse:"+_xmouse+" _ymouse:"+_ymouse;
}
onClipEventは、スプライト(ムービークリップ)に起こった色々なことでリアクションさせることができる機能だ。()の中にあるenterFrameはイベントと呼ばれ、何が起きたら命令を実行するのかと言う条件になっている。
enterFrameはFLASHのフレームが進むたびに呼び出される。stop()していてもFLASHの中でフレームは動いている。そのフレームに合わせて再生が進むか進まないかが、play状態とstop状態の違いみたいなものだな。
ほかにマウスが動くと呼び出されるmouseMove、マウスボタンが押されたり離されたりした時に呼び出されるmouseDown,MouseUpなどがある。
ただ、この機能はFLASH上のどこでマウスが動いたり、クリックされたりしても反応してしまう、撮っても敏感なものだ。そのため、結局使いにくい。enterFrameはそこそこ使えるが、他は別な方法を使った方がいいし、その方法を覚えたらenterFrameもそれと同じやり方に切り替わるので、いずれ使わなくなるだろう。
でもその方法って、使う前にもう二三覚えなきゃならないことがあるので、面倒ごとを回避するためにも、とりあえず今回はこれね。
妙な手違いをしていなければ、このFLASHをプレビューすると画面にリアルタイムでマウスの座標が表示される。サンプルもまんまそれ。

1