マウスカーソルの位置によってスライドします。
(.flaファイルはページの最後でダウンロードできます)
マウスの位置を取得してムービークリップを動かす
1. サンプルの写真をダウンロードします。.flaファイルをダウンロード。
2. ステージに横に写真が並んだムービークリップ「photo」が配置されていることを確認してください。
3. 同様にインスタンス名も「photo」と設定されています。
4. actionレイヤーの1フレーム目と2フレーム目にキーフレームが分かれています。1フレーム目に以下のActionScriptを記述してください。
if(_xmouse < 100 &&photo._x < 0){ photo._x += 20; }else if(_xmouse > 300 && photo._x > Stage.width - photo._width){ photo._x -= 20; } 一行ずつ解説します。
photo._x += 20;
photo._x -= 20; の二行はこのフレームに来たらムービークリップ「photo」を右に20px移動させる、左に20px移動させるという意味になります。
_xmouse < 100
_xmouse > 300 if文の中の「_xmouse」というのは、ステージ上のマウスカーソルの位置を取得するプロパティです。ステージ左端を0として、右に進むにつれ大きな数字が返ってきます。
これにより、マウスカーソルがステージ左の100pxのとき{ }内を実行するという形に条件を作成しています。
このままでは左右どちらかにエンドレスにムービークリップが移動してしまいます。そこで以下の一文を加えています。
photo._x < 0 これはムービークリップが左端まで移動したらそれより右方向へは移動しないようにさせる条件です。if文で二つ以上の条件が共に満たされた場合に処理を行いたい場合には「&&」を使用します。
photo._x > Stage.width - photo._width 反対に右端を考えるには、ステージの幅からムービークリップの幅を引いた座標を指定します。
「Stage.width」でステージの幅を取得し、そこから「photo._width」でムービークリップの幅を取得しています。こうしておけば、後から写真をムービークリップの端に追加してもActionScriptを描き変える必要がありません。
これで完成です。
完成したファイルをダウンロード
今回は「_xmouse」、「_width」、「Stage.width」といったプロパティを使用しました。こうした情報を取得することで、ユーザの操作にあわせて動作するFlashを作成することができます。
ゴールデンウィーク皆さん楽しんできてください。
前のスレッド :その場で表示が変化する「おみくじ... || 次のスレッド :FLVエンコードを掘り下げる ...
