ムービークリップオブジェクトのマウスの相対座標を取得するプロパティを利用してマウスに合わせたオブジェクトの移動ができます。
ムービークリップオブジェクトからマウスポインタへの相対x座標は_xmouse、相対y座標は_ymouseで取得できます。これを利用して、 マウスの動きに合わせてオブジェクトを操作したりすることができます。
マウスポインタに合わせたいムービークリップに以下のムービークリップアクションをつけます。
onClipEvent(enterFrame) {
_x+=_xmouse;
_y+=_ymouse;
}
毎イベントごとに_xの値にマウスポインタへの相対x座標を増やすことでマウスポインタの位置に移動します。 同様にy座標も変更します。x,yのどちらかのみの指定を行うと、横方向,縦方向のみの一致します。 この方法以外にもstartDrag()メソッドを使って作ることもできます。
さらに、マウスポインタを非表示にするとマウスポインタっぽく見えるようになります。
onClipEvent(load) {
Mouse.hide();
}
起動時に、マウスオブジェクトMouseのメソッドhide()でマウスポインタを非表示にします。
マウスポインタに合わせたいムービークリップに以下のムービークリップアクションをつけます。
onClipEvent(enterFrame) {
_x+=_xmouse*0.2;
_y+=_ymouse*0.2;
}
マウスポインタに合わせたいムービークリップに以下のムービークリップアクションをつけます。
onClipEvent(enterFrame) {
xCal=_parent._xmouse-_x;
yCal=_parent._ymouse-_y;
_rotation=Math.atan2(yCal, xCal)*180/Math.PI;
}
さらにマウスポインタの方向に進む時には、以下のムービークリップアクションをつけます。
onClipEvent(enterFrame) {
xCal=_parent._xmouse-_x;
yCal=_parent._ymouse-_y;
_rotation=Math.atan2(yCal, xCal)*180/Math.PI;
_x+=xCal*0.2;
_y+=yCal*0.2;
}
マウスとの距離の0.2倍の距離を進むプログラムになっているので、マウスの動きに 少し遅れてついていきます。
Programming Laboratory (Shio seminar)